<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<xmi:XMI xmlns:uml="http://www.omg.org/spec/UML/20110701"
    xmlns:xmi="http://www.omg.org/spec/XMI/20110701"
    xmlns:mofext="http://www.omg.org/spec/MOF/20110701">
    <uml:Package xmi:id="Alf" xmi:uuid="1c414a2e-893e-40cf-a127-f86facf0e353" xmi:type="uml:Package">
        <packagedElement xmi:id="Alf-ElementReference"
            xmi:uuid="77063b73-5748-4ea2-95fe-6551626fcd13" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ElementReference-ownedComment"
                xmi:uuid="7a98fc59-efaa-4f91-92d2-a31cb020b749" xmi:type="uml:Comment">
                <body>A reference to a model element, either directly or via its Alf abstract syntax representation. (NOTE: The definitions of all the helper operations of ElementReference are specific to its subclasses.)
</body>
                <annotatedElement xmi:idref="Alf-ElementReference"/>
            </ownedComment>
            <name>ElementReference</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-InternalElementReference"
            xmi:uuid="b407f480-4516-403c-a871-eefeca701376" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-InternalElementReference-ownedComment"
                xmi:uuid="926e894a-bfae-4eae-8980-caa6f8461a6b" xmi:type="uml:Comment">
                <body>A direct reference to a UML model element.
</body>
                <annotatedElement xmi:idref="Alf-InternalElementReference"/>
            </ownedComment>
            <generalization xmi:id="Alf-InternalElementReference-generalization"
                xmi:uuid="2c351f80-1387-489b-9e22-c2ad2eadc1c3" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ElementReference"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-InternalElementReference-element"
                xmi:uuid="18abade9-5247-4287-99ee-cc8f0495b074" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InternalElementReference-element-ownedComment"
                    xmi:uuid="7a6c9d2a-35f7-4e95-99c2-b25b8ea3f1d6" xmi:type="uml:Comment">
                    <body>The Alf syntax element that represents the referenced model element.
</body>
                    <annotatedElement xmi:idref="Alf-InternalElementReference-element"/>
                </ownedComment>
                <name>element</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SyntaxElement"/>
                <association xmi:idref="Alf-A_element_internalElementReference"/>
            </ownedAttribute>
            <name>InternalElementReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SyntaxElement" xmi:uuid="0ece4801-7cc3-42cf-a898-418cc3647162"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SyntaxElement-ownedComment"
                xmi:uuid="957a024f-e9c0-4eb1-8533-81bccdd1ae75" xmi:type="uml:Comment">
                <body>A syntax element synthesized in an abstract syntax tree, along with any additional information determined during static semantic analysis.
</body>
                <annotatedElement xmi:idref="Alf-SyntaxElement"/>
            </ownedComment>
            <name>SyntaxElement</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ExternalElementReference"
            xmi:uuid="69813ba1-75d7-468e-a2b2-31a972c1bcfd" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ExternalElementReference-ownedComment"
                xmi:uuid="9625b63d-86af-4f6e-afdd-ece86f4164b6" xmi:type="uml:Comment">
                <body>A direct reference to a UML model element.
</body>
                <annotatedElement xmi:idref="Alf-ExternalElementReference"/>
            </ownedComment>
            <generalization xmi:id="Alf-ExternalElementReference-generalization"
                xmi:uuid="236217a9-76d4-4ec3-9e0b-d2edb230713f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ElementReference"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ExternalElementReference-element"
                xmi:uuid="48bd24ee-108c-4b06-812b-516e1985ad80" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Element"/>
                <ownedComment xmi:id="Alf-ExternalElementReference-element-ownedComment"
                    xmi:uuid="72a0843e-1cd3-4544-ad50-72e8c25e189a" xmi:type="uml:Comment">
                    <body>The referenced model element.
</body>
                    <annotatedElement xmi:idref="Alf-ExternalElementReference-element"/>
                </ownedComment>
                <name>element</name>
                <visibility>public</visibility>
                <association xmi:idref="Alf-A_element_externalElementReference"/>
            </ownedAttribute>
            <name>ExternalElementReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-AssignedSource" xmi:uuid="1f271693-c52c-4d26-b53d-19f34840d3c5"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-AssignedSource-ownedComment"
                xmi:uuid="36409021-7a50-4e9a-93ff-9826ebd78887" xmi:type="uml:Comment">
                <body>An assignment of a source element that gives the value of a local name, along with a record of the defined type (if any) and multiplicity of the local name.
</body>
                <annotatedElement xmi:idref="Alf-AssignedSource"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-AssignedSource-assignedSourceKnownTypeDerivation"
                xmi:uuid="78e6274e-5d85-4f65-9a77-dc5a3ba18b78" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignedSource"/>
                <specification
                    xmi:id="Alf-AssignedSource-assignedSourceKnownTypeDerivation-specification"
                    xmi:uuid="bdc06f95-d7ec-4654-bcb2-254c3ce2a026" xmi:type="uml:OpaqueExpression">
                    <body>If the subtype of an assigned source is empty, then its known type is the same as its type. Otherwise, its known type is the same as its subtype.
</body>
                    <language>English</language>
                </specification>
                <name>assignedSourceKnownTypeDerivation</name>
            </ownedRule>
            <ownedAttribute xmi:id="Alf-AssignedSource-name"
                xmi:uuid="552c5ff3-d4f8-4cdb-8af8-b35619b6d459" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-AssignedSource-name-ownedComment"
                    xmi:uuid="860a2014-630d-4101-ad1c-d0fd6580e559" xmi:type="uml:Comment">
                    <body>The local name for which this is the assigned source.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-source"
                xmi:uuid="e7ef476a-3adb-4670-a092-4e4694da3a9c" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignedSource-source-ownedComment"
                    xmi:uuid="deb7679a-4f37-47aa-a244-68d081deeddb" xmi:type="uml:Comment">
                    <body>A reference to the element that is to be the source for the assigned value of the given local name.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-source"/>
                </ownedComment>
                <name>source</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_source_assignedSource"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-upper"
                xmi:uuid="9ead0fb8-977e-4753-b89e-1bf3f586e9ae" xmi:type="uml:Property">
                <type
                    href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"/>
                <ownedComment xmi:id="Alf-AssignedSource-upper-ownedComment"
                    xmi:uuid="67f8589b-9164-4e1b-9045-91f03294d4bb" xmi:type="uml:Comment">
                    <body>The multiplicity upper bound for the local name.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-upper"/>
                </ownedComment>
                <name>upper</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-lower"
                xmi:uuid="9ccad651-f609-4a06-8298-925caef8bb10" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                <ownedComment xmi:id="Alf-AssignedSource-lower-ownedComment"
                    xmi:uuid="ba268009-7842-472b-be4b-a4a5d07d6a27" xmi:type="uml:Comment">
                    <body>The multiplicity lower bound for the name.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-lower"/>
                </ownedComment>
                <name>lower</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-type"
                xmi:uuid="7981a4de-7872-4548-a582-965d29ff85e6" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignedSource-type-ownedComment"
                    xmi:uuid="a756820b-0e81-4df6-bf26-d500176022aa" xmi:type="uml:Comment">
                    <body>A reference to the element that gives the type for the local name (if any).
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-type"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignedSource-type-lowerValue"
                    xmi:uuid="ea73a991-34e2-4eef-9efd-06f8dffea492" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_type_assignedSource"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-subtype"
                xmi:uuid="ee64eb85-8140-4fb8-9c71-a9a502fcf304" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignedSource-subtype-ownedComment"
                    xmi:uuid="77231fb7-7d8d-44fa-a00c-92adbc53527e" xmi:type="uml:Comment">
                    <body>A reference to the element that gives the best known type for the latest assignment to the local name (if any). This will always be a subtype of the type of the assigned source.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-subtype"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignedSource-subtype-lowerValue"
                    xmi:uuid="7c92610b-1964-41a3-af28-f8b55f88d5e8" xmi:type="uml:LiteralInteger"/>
                <name>subtype</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_subtype_assignedSource"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignedSource-knownType"
                xmi:uuid="12397423-20a4-4e5e-920c-45ababff6e98" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignedSource-knownType-ownedComment"
                    xmi:uuid="490efea8-d666-4bf3-8a46-cef291951b36" xmi:type="uml:Comment">
                    <body>A reference to the element that represents the best known type for the local name.
</body>
                    <annotatedElement xmi:idref="Alf-AssignedSource-knownType"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignedSource-knownType-lowerValue"
                    xmi:uuid="6671954a-60e1-428c-aed8-a5e63f58e093" xmi:type="uml:LiteralInteger"/>
                <name>knownType</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_knownType_assignedSource"/>
            </ownedAttribute>
            <name>AssignedSource</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-DocumentedElement"
            xmi:uuid="a6f57171-0413-4af4-b502-5b9c5909397d" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-DocumentedElement-ownedComment"
                xmi:uuid="325bc785-a33e-4ac5-a47a-ebbe34e598c6" xmi:type="uml:Comment">
                <body>A syntax element that has documentation comments associated with it.
</body>
                <annotatedElement xmi:idref="Alf-DocumentedElement"/>
            </ownedComment>
            <generalization xmi:id="Alf-DocumentedElement-generalization"
                xmi:uuid="7bf0792a-8aa2-45b8-bd6b-75fbb4cde1da" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-DocumentedElement-documentation"
                xmi:uuid="682ed4eb-70c9-45e5-b0ae-bf91588bd9ba" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-DocumentedElement-documentation-ownedComment"
                    xmi:uuid="bdfaebcf-3352-498a-a57c-9a974bb97550" xmi:type="uml:Comment">
                    <body>The documentation text to be associated with a syntax element. Each string is intended to be mapped to the body of a comment element in the target UML model.
</body>
                    <annotatedElement xmi:idref="Alf-DocumentedElement-documentation"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-DocumentedElement-documentation-lowerValue"
                    xmi:uuid="099a7516-267e-492d-8621-6eb0fb97a76e" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-DocumentedElement-documentation-upperValue"
                    xmi:uuid="a83a29a5-ef78-47e3-9238-8ce0705c8e1a"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>documentation</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>DocumentedElement</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_element_externalElementReference"
            xmi:uuid="16fa343f-b079-4ba1-90c9-bfd418da1399" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ExternalElementReference-element"/>
            <memberEnd xmi:idref="Alf-A_element_externalElementReference-externalElementReference"/>
            <ownedEnd xmi:id="Alf-A_element_externalElementReference-externalElementReference"
                xmi:uuid="76dd9d6b-92e7-47e0-8e11-bee417d496b4" xmi:type="uml:Property">
                <name>externalElementReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ExternalElementReference"/>
                <association xmi:idref="Alf-A_element_externalElementReference"/>
            </ownedEnd>
            <name>A_element_externalElementReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_subtype_assignedSource"
            xmi:uuid="8188adaf-21c8-433f-9c57-b40e463b9a35" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignedSource-subtype"/>
            <memberEnd xmi:idref="Alf-A_subtype_assignedSource-assignedSource"/>
            <ownedEnd xmi:id="Alf-A_subtype_assignedSource-assignedSource"
                xmi:uuid="1f31784f-1f3b-4569-b7e1-5c0488104dfc" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_subtype_assignedSource-assignedSource-lowerValue"
                    xmi:uuid="65c3fd9f-b8d3-4650-9fa8-89c02191dbc2" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_subtype_assignedSource-assignedSource-upperValue"
                    xmi:uuid="83986e2a-42ae-454d-bab2-3d427ed49776"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignedSource</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_subtype_assignedSource"/>
            </ownedEnd>
            <name>A_subtype_assignedSource</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_knownType_assignedSource"
            xmi:uuid="c9689b98-da6b-49e6-af03-0249af087a01" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignedSource-knownType"/>
            <memberEnd xmi:idref="Alf-A_knownType_assignedSource-assignedSource"/>
            <ownedEnd xmi:id="Alf-A_knownType_assignedSource-assignedSource"
                xmi:uuid="b5043852-0526-4425-bac2-d1ecafc0c591" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_knownType_assignedSource-assignedSource-lowerValue"
                    xmi:uuid="5d0669eb-96fa-4313-875f-2c63c574a808" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_knownType_assignedSource-assignedSource-upperValue"
                    xmi:uuid="4a3e2bac-660f-42cf-9bd1-751316917344"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignedSource</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_knownType_assignedSource"/>
            </ownedEnd>
            <name>A_knownType_assignedSource</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_type_assignedSource"
            xmi:uuid="4ac18a9d-08ed-4229-bd44-c16a8852bab1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignedSource-type"/>
            <memberEnd xmi:idref="Alf-A_type_assignedSource-assignedSource"/>
            <ownedEnd xmi:id="Alf-A_type_assignedSource-assignedSource"
                xmi:uuid="2ea19abe-321c-4466-8186-8e1b2bf9728b" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_type_assignedSource-assignedSource-lowerValue"
                    xmi:uuid="43676d4c-5f32-429a-89b1-8c4be1e2f6c9" xmi:type="uml:LiteralInteger"/>
                <name>assignedSource</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_type_assignedSource"/>
            </ownedEnd>
            <name>A_type_assignedSource</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_source_assignedSource"
            xmi:uuid="de4d948a-37cf-4e57-b5c3-7b992da5ebe0" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignedSource-source"/>
            <memberEnd xmi:idref="Alf-A_source_assignedSource-assignedSource"/>
            <ownedEnd xmi:id="Alf-A_source_assignedSource-assignedSource"
                xmi:uuid="321a36df-ac6b-4a5a-a699-4d55c814f449" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_source_assignedSource-assignedSource-lowerValue"
                    xmi:uuid="a5caf97d-cdae-4fcc-8bb7-5283032b835a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_source_assignedSource-assignedSource-upperValue"
                    xmi:uuid="94612cf7-f237-4a3a-bcf0-8199dbc48860"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignedSource</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_source_assignedSource"/>
            </ownedEnd>
            <name>A_source_assignedSource</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_element_internalElementReference"
            xmi:uuid="57adad14-2b2f-439d-b2bf-10fbfefb1a61" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InternalElementReference-element"/>
            <memberEnd xmi:idref="Alf-A_element_internalElementReference-internalElementReference"/>
            <ownedEnd xmi:id="Alf-A_element_internalElementReference-internalElementReference"
                xmi:uuid="050dbbcd-85d6-49c3-8dea-4bfea169c4fd" xmi:type="uml:Property">
                <name>internalElementReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InternalElementReference"/>
                <association xmi:idref="Alf-A_element_internalElementReference"/>
            </ownedEnd>
            <name>A_element_internalElementReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LeftHandSide" xmi:uuid="0428c7af-01ab-490e-a45c-2559e2bea613"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LeftHandSide-ownedComment"
                xmi:uuid="f2f5aa78-c75c-4cf4-8ec7-fbc07598ab76" xmi:type="uml:Comment">
                <body>The left-hand side of an assignment expression.

NOTE: The derivations for the derived properties of LeftHandSide are specific to its various subclasses.
</body>
                <annotatedElement xmi:idref="Alf-LeftHandSide"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-LeftHandSide-leftHandSideIndexExpression"
                xmi:uuid="6bec3f5e-365e-446c-ab75-274fb5b16496" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LeftHandSide"/>
                <specification xmi:id="Alf-LeftHandSide-leftHandSideIndexExpression-specification"
                    xmi:uuid="fb4d80fc-c6dc-4351-a87d-b6d30da930bf" xmi:type="uml:OpaqueExpression">
                    <body>If a left-hand side has an index, then the index expression must have a multiplicity upper bound no greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>leftHandSideIndexExpression</name>
            </ownedRule>
            <generalization xmi:id="Alf-LeftHandSide-generalization"
                xmi:uuid="6958572c-fc8b-4670-b3f4-eb9f656460b6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-LeftHandSide-assignmentBefore"
                xmi:uuid="f26ac28c-5d67-448b-aa7f-ffc8b53f8394" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LeftHandSide-assignmentBefore-ownedComment"
                    xmi:uuid="59c428f5-e520-4a11-b88b-da22e92ee0b6" xmi:type="uml:Comment">
                    <annotatedElement xmi:idref="Alf-LeftHandSide-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LeftHandSide-assignmentBefore-lowerValue"
                    xmi:uuid="b7f2904c-a4b3-42a3-bccd-197d8a3d8b4e" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-LeftHandSide-assignmentBefore-upperValue"
                    xmi:uuid="5e0bcdf9-bb42-477a-9cc3-292c5b3e169b"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_leftHandSide"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-assignmentAfter"
                xmi:uuid="9ada62d3-a7a4-4c4f-a51c-e72290d3b24e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LeftHandSide-assignmentAfter-ownedComment"
                    xmi:uuid="41006449-5ce9-41fb-8896-0fb222aa395c" xmi:type="uml:Comment">
                    <body>The assignments after the left-hand side.
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-assignmentAfter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LeftHandSide-assignmentAfter-lowerValue"
                    xmi:uuid="d1f8acba-ee5a-43db-9ec2-4fd77e25ef39" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-LeftHandSide-assignmentAfter-upperValue"
                    xmi:uuid="e0d2c5f8-b8a2-4463-9ef3-6a8c1e40f421"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentAfter</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentAfter_leftHandSide"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-index"
                xmi:uuid="6fa52475-4fce-401d-b8a9-bcbaf18e6912" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LeftHandSide-index-ownedComment"
                    xmi:uuid="48776d20-5d8e-4ad2-a47f-a78b0e73aff9" xmi:type="uml:Comment">
                    <body>An optional expression that evaluates to an index into the values of an ordered sequence.
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-index"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LeftHandSide-index-lowerValue"
                    xmi:uuid="67a9f19e-7b05-4c0c-ab40-f0f1ad15d40d" xmi:type="uml:LiteralInteger"/>
                <name>index</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_index_leftHandSide"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-referent"
                xmi:uuid="99a19f54-0ba9-4a05-b2d7-734ad10ee67e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LeftHandSide-referent-ownedComment"
                    xmi:uuid="698213e9-4f9c-471e-b46b-ca5c23831650" xmi:type="uml:Comment">
                    <body>A reference to the assignable element denoted by this left-hand side, if one exists (i.e., the left-hand side is not for the first assignment of a local name).
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-referent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LeftHandSide-referent-lowerValue"
                    xmi:uuid="5b57bf36-0159-4417-81e2-7713db19f8d2" xmi:type="uml:LiteralInteger"/>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-type"
                xmi:uuid="d3715b51-5198-40b6-b4a8-2c55a6fbf5bd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LeftHandSide-type-ownedComment"
                    xmi:uuid="639b7ec5-e740-4d05-a922-09d623f865c8" xmi:type="uml:Comment">
                    <body>A reference to the element that specifies the statically determined type of this left-hand side (if any).
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-type"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LeftHandSide-type-lowerValue"
                    xmi:uuid="25190df5-e13f-42db-9bdd-096abe2312f7" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-lower"
                xmi:uuid="2355b189-abf5-49c9-9a55-3c8e36247b2d" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                <ownedComment xmi:id="Alf-LeftHandSide-lower-ownedComment"
                    xmi:uuid="04f7cd50-c007-4da2-9745-46d338772d78" xmi:type="uml:Comment">
                    <body>The statically determined lower bound of the multiplicity of this left-hand side.
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-lower"/>
                </ownedComment>
                <name>lower</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LeftHandSide-upper"
                xmi:uuid="58d53add-9bcf-495d-aa55-eb3fad8e1985" xmi:type="uml:Property">
                <type
                    href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"/>
                <ownedComment xmi:id="Alf-LeftHandSide-upper-ownedComment"
                    xmi:uuid="a8335b61-66b8-4e24-9067-6e52e0386de1" xmi:type="uml:Comment">
                    <body>The statically determined upper bound of the multiplicity of this left-hand side.
</body>
                    <annotatedElement xmi:idref="Alf-LeftHandSide-upper"/>
                </ownedComment>
                <name>upper</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>LeftHandSide</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ThisExpression" xmi:uuid="c448b589-2cda-42ce-bc72-e330f3c6ffd3"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ThisExpression-ownedComment"
                xmi:uuid="819697ae-34c5-4514-96fb-fbf94bc88d82" xmi:type="uml:Comment">
                <body>An expression comprising the keyword “this”.
</body>
                <annotatedElement xmi:idref="Alf-ThisExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ThisExpression-thisExpressionTypeDerivation"
                xmi:uuid="2b2b20a3-e33b-417e-ae19-75dc9339f7b8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ThisExpression"/>
                <specification
                    xmi:id="Alf-ThisExpression-thisExpressionTypeDerivation-specification"
                    xmi:uuid="c87e58e3-72a7-4794-82cc-270c7c3451db" xmi:type="uml:OpaqueExpression">
                    <body>The static type of a this expression is the statically determined context classifier for the context in which the this expression occurs.
</body>
                    <language>English</language>
                </specification>
                <name>thisExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ThisExpression-thisExpressionUpperDerivation"
                xmi:uuid="4ef8d138-c05a-4227-9dd3-c4342bbead2c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ThisExpression"/>
                <specification
                    xmi:id="Alf-ThisExpression-thisExpressionUpperDerivation-specification"
                    xmi:uuid="88a372c0-78d4-41f5-bbe6-9101ddd11b77" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a this expression is always 1.
</body>
                    <language>English</language>
                </specification>
                <name>thisExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ThisExpression-thisExpressionLowerDerivation"
                xmi:uuid="a45bbc07-0eb3-467f-b84a-3397e9912489" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ThisExpression"/>
                <specification
                    xmi:id="Alf-ThisExpression-thisExpressionLowerDerivation-specification"
                    xmi:uuid="6685d1d0-b688-42a5-9d3f-ad8677697621" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a this expression is always 1.
</body>
                    <language>English</language>
                </specification>
                <name>thisExpressionLowerDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-ThisExpression-generalization"
                xmi:uuid="35ce18df-c547-400f-a736-b354248b86da" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <name>ThisExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NameLeftHandSide"
            xmi:uuid="838a29b0-9593-443d-97b9-a18b6ed92f64" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NameLeftHandSide-ownedComment"
                xmi:uuid="a87bad82-1dd8-4d76-be7b-2684bda08f81" xmi:type="uml:Comment">
                <body>A left-hand side that is a name.
</body>
                <annotatedElement xmi:idref="Alf-NameLeftHandSide"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation"
                xmi:uuid="650b3554-e811-4255-ade9-1a10a4a32632" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation-specification"
                    xmi:uuid="4ec734ad-48f3-4888-a348-fe4e669bea7b" xmi:type="uml:OpaqueExpression">
                    <body>If a name left-hand side has an index, then the assignments after the left-hand side are the same as the assignments after the index. If the left-hand side has no index, but its target disambiguates to a feature reference, then the assignments after the left-hand side are the assignments after the feature expression. Otherwise the assignments after the left-hand side are the same as the assignments before the left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideAssignmentAfterDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment"
                xmi:uuid="e466f8d1-c638-4054-99bd-0db6ad11634e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment-specification"
                    xmi:uuid="b40ddd76-f687-4c4e-9ba2-24a544901de6" xmi:type="uml:OpaqueExpression">
                    <body>The target of a name left hand side may not already have an assigned source that is a loop variable definition, an annotation, a sequence expansion expression or a parameter that is an in parameter.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideTargetAssignment</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore"
                xmi:uuid="69e39ee1-eb4d-4aca-8c48-ee5b3b531681" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore-specification"
                    xmi:uuid="32844405-e529-463b-90ea-9ca9b5aa300f" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a name left-hand side disambiguates to a feature reference, then the assignments before the expression of the feature reference are the assignments before the left-hand side. If a name left-hand side has an index, then the target must either disambiguate to a feature reference or already have an assigned source, and the assignments before the index expression are the assignments before the left-hand side or, if the target disambiguates to a feature reference, the assignments after the expression of the feature reference.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation"
                xmi:uuid="74e333f0-28ca-49b8-842d-acd8a265f210" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation-specification"
                    xmi:uuid="678c4c54-9297-4b9b-a796-18827d01985f" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a name left-hand side disambiguates to a structural feature, then the referent of the left-hand side is that feature. If the target resolves to a parameter, then the referent is that parameter. If the target resolves to a local name, then the referent is the assigned source for that local name, if it has one.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation"
                xmi:uuid="60bf63f7-7611-445b-9cc3-2e38e8beec74" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation-specification"
                    xmi:uuid="63b5a160-5700-4840-b7bf-48ae0b646fff" xmi:type="uml:OpaqueExpression">
                    <body>If a name left-hand side is indexed, then its lower bound is 0. Otherwise, if the left-hand side is for a local name with an assignment, than its lower bound is that of the assignment, else, if it has a referent, then its lower bound is that of the referent.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation"
                xmi:uuid="f9d90aba-d45b-41bf-9374-355c90d2fe90" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation-specification"
                    xmi:uuid="2b332a17-2dfd-4ab0-92bd-6ef21f49614e" xmi:type="uml:OpaqueExpression">
                    <body>If a name left-hand side is indexed, then its upper bound is 1. Otherwise, if the left-hand side is for a local name with an assignment, than its upper bound is that of the assignment, else, if it has a referent, then its upper bound is that of the referent.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation"
                xmi:uuid="28bcb789-af00-4986-b775-a791c8fb5ff8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation-specification"
                    xmi:uuid="0c6bd103-84d2-4dc2-9c91-82a9dccc1fd9" xmi:type="uml:OpaqueExpression">
                    <body>If a name left-hand side is for a local name with an assignment, then its type is that of that assignment. Otherwise, if the left-hand side has a referent, then its type is the type of that referent.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution"
                xmi:uuid="90348c2e-38bb-4cb3-89d1-094a30503b99" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution-specification"
                    xmi:uuid="d2e68904-fb70-4bb8-abdf-cc9646926c80" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a name left-hand side is qualified, then, if it does not disambiguate to a feature, it must have a referent that is a parameter of an operation or behavior that is the current scope the left-hand is in, and, if it does disambiguate to a feature, it must have a single referent that is a structural feature.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideTargetResolution</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature"
                xmi:uuid="6bb5e758-20a3-4dfb-9bb7-20f752cd19f6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature-specification"
                    xmi:uuid="defa9908-4c50-400b-81e0-a9259f6ac2f5" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a name left-hand side disambiguates to a feature reference, and the left-hand side has an index, then the referent of the feature reference must be ordered and non-unique.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideIndexedFeature</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget"
                xmi:uuid="310b4e99-fcbd-4961-940f-668f26fc13cc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget-specification"
                    xmi:uuid="199bbb76-904c-4d05-be8d-e597b4e10a62" xmi:type="uml:OpaqueExpression">
                    <body>The target of a name left-hand side must not have a template binding.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideNontemplateTarget</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideFeatureExpression"
                xmi:uuid="32d799bd-873e-41cc-a521-b652e2847838" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
                <specification
                    xmi:id="Alf-NameLeftHandSide-nameLeftHandSideFeatureExpression-specification"
                    xmi:uuid="1c48df77-b591-4823-be43-5c5f59420821" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a name left-hand side disambiguates to a feature reference, then the expression of the feature reference must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>nameLeftHandSideFeatureExpression</name>
            </ownedRule>
            <generalization xmi:id="Alf-NameLeftHandSide-generalization"
                xmi:uuid="9fa88a75-2120-4957-9788-f0eebc62bab4" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LeftHandSide"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NameLeftHandSide-target"
                xmi:uuid="35f9ac14-b643-4245-93b6-72655d6ab789" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameLeftHandSide-target-ownedComment"
                    xmi:uuid="572fa6db-e2e4-4fda-91c7-5eb2234fe6bb" xmi:type="uml:Comment">
                    <body>The name that is the target of the assignment.
</body>
                    <annotatedElement xmi:idref="Alf-NameLeftHandSide-target"/>
                </ownedComment>
                <name>target</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_target_nameLeftHandSide"/>
            </ownedAttribute>
            <name>NameLeftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PositionalTemplateBinding"
            xmi:uuid="d768f9d4-7248-4e03-bb0d-d0208be1cdd2" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PositionalTemplateBinding-ownedComment"
                xmi:uuid="cb6c3d45-be93-47b0-89c8-6e845d7e7544" xmi:type="uml:Comment">
                <body>A template binding in which the arguments are matched to formal template parameters in order by position.
</body>
                <annotatedElement xmi:idref="Alf-PositionalTemplateBinding"/>
            </ownedComment>
            <generalization xmi:id="Alf-PositionalTemplateBinding-generalization"
                xmi:uuid="1c0dad96-862f-4870-ae81-a9b684199e3b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-TemplateBinding"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-PositionalTemplateBinding-argumentName"
                xmi:uuid="d0b4529d-72d5-4ca8-9eda-9307d5643585" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-PositionalTemplateBinding-argumentName-ownedComment"
                    xmi:uuid="82a980e1-1830-4281-a228-477eb004a37e" xmi:type="uml:Comment">
                    <body>The arguments for this template binding, to be matched by position to the template parameters.
</body>
                    <annotatedElement xmi:idref="Alf-PositionalTemplateBinding-argumentName"/>
                </ownedComment>
                <upperValue xmi:id="Alf-PositionalTemplateBinding-argumentName-upperValue"
                    xmi:uuid="b405fb8a-5857-43d1-bce8-477aa9fe4f2f"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>argumentName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_argumentName_positionalTemplateBinding"/>
            </ownedAttribute>
            <name>PositionalTemplateBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ForAllOrExistsOrOneExpression"
            xmi:uuid="ebbdb1f6-f799-4c8a-b6a5-e576a83d72b2" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-ownedComment"
                xmi:uuid="92ac1fca-7514-4e83-81d5-919e3404c8e8" xmi:type="uml:Comment">
                <body>A sequence expansion expression with a forAll, exists or one operation.
</body>
                <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation"
                xmi:uuid="6757a2bb-cef1-494c-80a0-827bf36c037f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
                <specification
                    xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation-specification"
                    xmi:uuid="01c72813-ee6c-41d1-8a5a-d4db47ed2a73" xmi:type="uml:OpaqueExpression">
                    <body>A forAll, exists or one expression has the type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>forAllOrExistsOrOneExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation"
                xmi:uuid="d54f54c6-1384-419e-a026-0524ca93e031" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
                <specification
                    xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation-specification"
                    xmi:uuid="de6ea71d-f14b-4bab-bd85-d413e7fe77f5" xmi:type="uml:OpaqueExpression">
                    <body>A forAll, exists or one expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>forAllOrExistsOrOneExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation"
                xmi:uuid="9b9a70fb-e8bf-4fd1-a4ff-3f27cfac4c7c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
                <specification
                    xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation-specification"
                    xmi:uuid="445b2fc8-0841-49c3-9a93-3bbddc12aa7c" xmi:type="uml:OpaqueExpression">
                    <body>A forAll, exists or one expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>forAllOrExistsOrOneExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument"
                xmi:uuid="7859cda1-b302-49ed-ae2d-a3eb1016cafd" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
                <specification
                    xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument-specification"
                    xmi:uuid="82efa66e-e899-415c-8615-518d81f36ea5" xmi:type="uml:OpaqueExpression">
                    <body>The argument of a forAll, exists or one expression must have a type that conforms to type Boolean and a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>forAllOrExistsOrOneExpressionArgument</name>
            </ownedRule>
            <generalization xmi:id="Alf-ForAllOrExistsOrOneExpression-generalization"
                xmi:uuid="a03fec9b-d45c-46a4-966d-918755ecfd48" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceExpansionExpression"/>
            </generalization>
            <name>ForAllOrExistsOrOneExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-FeatureReference"
            xmi:uuid="c5413d53-487a-4b7a-af42-40ce8421d388" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-FeatureReference-ownedComment"
                xmi:uuid="acb9bb95-52c4-4c9a-b400-f6aae9d40dba" xmi:type="uml:Comment">
                <body>A reference to a structural or behavioral feature of the type of its target expression or a binary association end the opposite end of which is typed by the type of its target expression.
</body>
                <annotatedElement xmi:idref="Alf-FeatureReference"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-FeatureReference-featureReferenceReferentDerivation"
                xmi:uuid="4c90d0f4-fa2e-4e1a-9df9-90531f51a262" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureReference"/>
                <specification
                    xmi:id="Alf-FeatureReference-featureReferenceReferentDerivation-specification"
                    xmi:uuid="1342742a-dff0-4a0d-8618-e2aab762cce2" xmi:type="uml:OpaqueExpression">
                    <body>The features referenced by a feature reference include the features of the type of the target expression and the association ends of any binary associations whose opposite ends are typed by the type of the target expression.
</body>
                    <language>English</language>
                </specification>
                <name>featureReferenceReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureReference-featureReferenceTargetType"
                xmi:uuid="ea38c7da-4a00-4f2d-87b6-968a7d8603a8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureReference"/>
                <specification
                    xmi:id="Alf-FeatureReference-featureReferenceTargetType-specification"
                    xmi:uuid="7b6106ff-a4ef-476c-b874-4fb3ad60f370" xmi:type="uml:OpaqueExpression">
                    <body>The target expression of the feature reference may not be untyped, nor may it have a primitive or enumeration type.
</body>
                    <language>English</language>
                </specification>
                <name>featureReferenceTargetType</name>
            </ownedRule>
            <generalization xmi:id="Alf-FeatureReference-generalization"
                xmi:uuid="4036859f-f65a-409f-ab81-364b48ff9194" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-FeatureReference-expression"
                xmi:uuid="5a3e324d-b044-4073-989c-8837739bad31" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-FeatureReference-expression-ownedComment"
                    xmi:uuid="9d8bcd20-2375-4d63-be25-b8fa8cb480f9" xmi:type="uml:Comment">
                    <body>The target expression.
</body>
                    <annotatedElement xmi:idref="Alf-FeatureReference-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_featureReference"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-FeatureReference-referent"
                xmi:uuid="791fe0b4-4d1c-4a05-b8e6-0232e1f24e86" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-FeatureReference-referent-ownedComment"
                    xmi:uuid="fd4f771d-722c-4b4e-b8c1-b8f19ec06a76" xmi:type="uml:Comment">
                    <body>The features referenced by this feature reference.
</body>
                    <annotatedElement xmi:idref="Alf-FeatureReference-referent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-FeatureReference-referent-lowerValue"
                    xmi:uuid="cda6996b-5012-4071-b79b-13de0b3ea627" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-FeatureReference-referent-upperValue"
                    xmi:uuid="559b7776-9004-4c95-85d7-1932412d3fbe"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_featureReference"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-FeatureReference-nameBinding"
                xmi:uuid="7a98ec95-a735-4307-be12-5229979403f8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-FeatureReference-nameBinding-ownedComment"
                    xmi:uuid="2f9e11c8-1326-40d3-9897-8a9bd3c6a5b1" xmi:type="uml:Comment">
                    <body>The name of the feature.
</body>
                    <annotatedElement xmi:idref="Alf-FeatureReference-nameBinding"/>
                </ownedComment>
                <name>nameBinding</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-NameBinding"/>
                <association xmi:idref="Alf-A_nameBinding_featureReference"/>
            </ownedAttribute>
            <name>FeatureReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-BitStringUnaryExpression"
            xmi:uuid="28805531-da46-4346-8997-bdcd01702398" xmi:type="uml:Class">
            <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation"
                xmi:uuid="376c97af-14b4-4134-a8f5-66f4b6aed4a8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BitStringUnaryExpression"/>
                <specification
                    xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation-specification"
                    xmi:uuid="b87950e5-d153-4446-8adf-e347b61c3335" xmi:type="uml:OpaqueExpression">
                    <body>A BitString unary expression has type BitString.
</body>
                    <language>English</language>
                </specification>
                <name>bitStringUnaryExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation"
                xmi:uuid="b5e78400-bd13-473e-beed-c0bfb10caf30" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BitStringUnaryExpression"/>
                <specification
                    xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation-specification"
                    xmi:uuid="9f70deac-37c7-4b2d-a039-264d34144730" xmi:type="uml:OpaqueExpression">
                    <body>A BitString unary expression a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>bitStringUnaryExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation"
                xmi:uuid="0c270bb6-8c8d-4d64-9655-5533be92fafb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BitStringUnaryExpression"/>
                <specification
                    xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation-specification"
                    xmi:uuid="00c2fa03-dbe4-4bed-a43a-875f9567026e" xmi:type="uml:OpaqueExpression">
                    <body>A BitString unary expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>bitStringUnaryExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand"
                xmi:uuid="d0f402e7-c6a2-419a-8a51-2bee2dcd2d0b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BitStringUnaryExpression"/>
                <specification
                    xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand-specification"
                    xmi:uuid="9902a526-2a4c-4f8b-8896-0474917f06db" xmi:type="uml:OpaqueExpression">
                    <body>The operand expression of a BitString unary expression must have a type that conforms to BitString or Integer and multiplicity upper and lower bounds of 1.
</body>
                    <language>English</language>
                </specification>
                <name>bitStringUnaryExpressionOperand</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation"
                xmi:uuid="3044a646-374b-48e3-bb05-116c07afdadb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BitStringUnaryExpression"/>
                <specification
                    xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation-specification"
                    xmi:uuid="49aeaaa9-a8da-4319-a82f-c832b500d183" xmi:type="uml:OpaqueExpression">
                    <body>BitString conversion is required if the operand expression of a BitString unary expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>bitStringUnaryExpressionIsBitStringConversionDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-BitStringUnaryExpression-generalization"
                xmi:uuid="65f836e6-c418-4c35-9a9f-d111c577c377" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-UnaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BitStringUnaryExpression-isBitStringConversion"
                xmi:uuid="071cbd7e-0b3c-4f26-8c1a-559e4d19c302" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-BitStringUnaryExpression-isBitStringConversion-ownedComment"
                    xmi:uuid="4a29ef3b-7837-49ba-834f-b55358c1a40b" xmi:type="uml:Comment">
                    <body>Whether BitString conversion is required on the operand expression.
</body>
                    <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-isBitStringConversion"
                    />
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>BitStringUnaryExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LogicalExpression"
            xmi:uuid="1a600cea-bdf9-432a-8a0b-c79faebca37a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LogicalExpression-ownedComment"
                xmi:uuid="073ec1aa-8a37-4080-9045-ca696f8067b5" xmi:type="uml:Comment">
                <body>A binary expression with a logical operator.
</body>
                <annotatedElement xmi:idref="Alf-LogicalExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionTypeDerivation"
                xmi:uuid="73608892-8b2b-4921-aecc-60d14479521c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionTypeDerivation-specification"
                    xmi:uuid="39878a80-477c-4337-a332-7a0c78743e84" xmi:type="uml:OpaqueExpression">
                    <body>A logical expression has type Boolean if it is not bit-wise and type BitString if it is bit-wise.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionLowerDerivation"
                xmi:uuid="2ed8e382-4fe6-429c-a4c2-ad8cb1bfc2d0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionLowerDerivation-specification"
                    xmi:uuid="6bac90b9-4eae-4dea-9b29-9255137e2f7d" xmi:type="uml:OpaqueExpression">
                    <body>A logical expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionUpperDerivation"
                xmi:uuid="1d90ce7c-6afa-477a-b4c8-8e838a98ed99" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionUpperDerivation-specification"
                    xmi:uuid="becacc68-8c3b-4a7e-8195-bc171f55a307" xmi:type="uml:OpaqueExpression">
                    <body>A logical expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionOperands"
                xmi:uuid="b60497e0-9841-45a7-9c0b-79e988b939fb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionOperands-specification"
                    xmi:uuid="af13cb6b-35d2-4206-9ba0-1b921116b477" xmi:type="uml:OpaqueExpression">
                    <body>The operands of a logical expression must have a type that conforms to type Boolean, Integer or BitString. However, if one of the operands is Boolean, then the other must also be Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionOperands</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation"
                xmi:uuid="e8e201b5-1843-451b-a979-6b13931d95d5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation-specification"
                    xmi:uuid="f7208c3a-af42-4083-af6c-d19db587aa08" xmi:type="uml:OpaqueExpression">
                    <body>BitString conversion is required if the first operand expression of a logical expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionIsBitStringConversion1Derivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation"
                xmi:uuid="fddfb38e-3af7-4032-b208-1e8b5fa6ea1e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation-specification"
                    xmi:uuid="07dc37e0-fdcf-40f1-9474-b1f7c91d6642" xmi:type="uml:OpaqueExpression">
                    <body>BitString conversion is required if the second operand expression of a logical expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionIsBitStringConversion2Derivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation"
                xmi:uuid="f895111e-cb52-48be-a80d-e75bee4707d8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LogicalExpression"/>
                <specification
                    xmi:id="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation-specification"
                    xmi:uuid="999ecfde-7a3c-432f-826c-32bbedb81166" xmi:type="uml:OpaqueExpression">
                    <body>A logical expression is bit-wise if the type of its first operand is not Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>logicalExpressionIsBitWiseDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-LogicalExpression-generalization"
                xmi:uuid="a6ea87a9-212c-4a17-9590-853cc1c71fec" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-LogicalExpression-isBitWise"
                xmi:uuid="08a42085-9602-41fb-bede-07a056190261" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LogicalExpression-isBitWise-ownedComment"
                    xmi:uuid="29591d16-7ca2-4cfe-9da8-9f1c4903a565" xmi:type="uml:Comment">
                    <body>Whether this is a bit-wise logical operation on bit strings.
</body>
                    <annotatedElement xmi:idref="Alf-LogicalExpression-isBitWise"/>
                </ownedComment>
                <name>isBitWise</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LogicalExpression-isBitStringConversion1"
                xmi:uuid="be78f10c-01c0-4193-a022-3da615cad2b5" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LogicalExpression-isBitStringConversion1-ownedComment"
                    xmi:uuid="061e6470-8ce3-41ee-9bf4-e7bf31a3d470" xmi:type="uml:Comment">
                    <body>Whether the first operand expression requires BitString conversion.
</body>
                    <annotatedElement xmi:idref="Alf-LogicalExpression-isBitStringConversion1"/>
                </ownedComment>
                <name>isBitStringConversion1</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LogicalExpression-isBitStringConversion2"
                xmi:uuid="bee39199-0683-4004-a4b5-ea48a60a4fba" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LogicalExpression-isBitStringConversion2-ownedComment"
                    xmi:uuid="c8b44d0d-8b24-48c0-9dd1-d2e55b37ceb3" xmi:type="uml:Comment">
                    <body>Whether the second operand expression requires BitString conversion.
</body>
                    <annotatedElement xmi:idref="Alf-LogicalExpression-isBitStringConversion2"/>
                </ownedComment>
                <name>isBitStringConversion2</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>LogicalExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassExtentExpression"
            xmi:uuid="0fedeb98-775e-4147-8e40-4b394718438a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassExtentExpression-ownedComment"
                xmi:uuid="12ea8ade-eb75-4070-acbe-cefa43a0dd34" xmi:type="uml:Comment">
                <body>An expression used to obtain the objects in the extent of a class.
</body>
                <annotatedElement xmi:idref="Alf-ClassExtentExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation"
                xmi:uuid="926f0296-1e27-4881-bd63-83ae07f57270" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
                <specification
                    xmi:id="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation-specification"
                    xmi:uuid="dc6247e7-5b52-4248-a89f-033d42da6620" xmi:type="uml:OpaqueExpression">
                    <body>The type of a class extent expression is the given class.
</body>
                    <language>English</language>
                </specification>
                <name>classExtentExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation"
                xmi:uuid="0b45d723-2bc4-42e4-9cda-3a92485a9384" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
                <specification
                    xmi:id="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation-specification"
                    xmi:uuid="ef8b9072-7f8c-4d44-bc2a-d5ea3c338e0a" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a class expression is *.
</body>
                    <language>English</language>
                </specification>
                <name>classExtentExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation"
                xmi:uuid="578117a0-4ead-4c2b-8a9c-0a900ea108f1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
                <specification
                    xmi:id="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation-specification"
                    xmi:uuid="4106a2ef-a9e5-4c6f-811b-753e92b19750" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a class extent expression is 0. 
</body>
                    <language>English</language>
                </specification>
                <name>classExtentExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionExtentType"
                xmi:uuid="f4b54cad-e06a-4e25-bf40-d01c5aea6440" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
                <specification
                    xmi:id="Alf-ClassExtentExpression-classExtentExpressionExtentType-specification"
                    xmi:uuid="9d86fbd1-4239-4fae-b618-2c0f7da540b1" xmi:type="uml:OpaqueExpression">
                    <body>The given type name must resolve to a non-template class.
</body>
                    <language>English</language>
                </specification>
                <name>classExtentExpressionExtentType</name>
            </ownedRule>
            <generalization xmi:id="Alf-ClassExtentExpression-generalization"
                xmi:uuid="bdd7a6d4-4591-47d0-8bf5-5cbbe547db33" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ClassExtentExpression-className"
                xmi:uuid="a9cc7b44-eeda-448d-84be-e471f54dcc87" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassExtentExpression-className-ownedComment"
                    xmi:uuid="f66a3725-a45f-4275-b151-1c4597151048" xmi:type="uml:Comment">
                    <annotatedElement xmi:idref="Alf-ClassExtentExpression-className"/>
                    <body>The name of the class whose extent is to be obtained.</body>
                </ownedComment>
                <name>className</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_className_classExtentExpression"/>
            </ownedAttribute>
            <name>ClassExtentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-RealLiteralExpression"
            xmi:uuid="50a1e601-a22d-4ad5-9ab0-a082bb601a99" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-RealLiteralExpression-ownedComment"
                xmi:uuid="429d8f22-f941-4bc4-b020-76741b92c724" xmi:type="uml:Comment">
                <body>An expression that comprises a real literal.
</body>
                <annotatedElement xmi:idref="Alf-RealLiteralExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-RealLiteralExpression-realLiteralExpressionTypeDerivation"
                xmi:uuid="ead1a5b6-8eed-4321-b23e-cd582d831c98" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RealLiteralExpression"/>
                <specification
                    xmi:id="Alf-RealLiteralExpression-realLiteralExpressionTypeDerivation-specification"
                    xmi:uuid="efaf1f3a-c51d-41fc-b2d8-c45665915249" xmi:type="uml:OpaqueExpression">
                    <body>The type of a real literal expression is the Alf library type Real.
</body>
                    <language>English</language>
                </specification>
                <name>realLiteralExpressionTypeDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-RealLiteralExpression-generalization"
                xmi:uuid="da235d69-8582-4231-90fe-f4340edc6b2c" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LiteralExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-RealLiteralExpression-image"
                xmi:uuid="6c6c251e-4e9d-4153-9219-db2cfdd97775" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-RealLiteralExpression-image-ownedComment"
                    xmi:uuid="06f2593f-f136-49c8-a850-ab4214bf9fe1" xmi:type="uml:Comment">
                    <body>The textual image of the literal token for this expression.
</body>
                    <annotatedElement xmi:idref="Alf-RealLiteralExpression-image"/>
                </ownedComment>
                <name>image</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>RealLiteralExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-TemplateParameterSubstitution"
            xmi:uuid="8edb565b-2440-4259-a792-eff07f1b1089" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-TemplateParameterSubstitution-ownedComment"
                xmi:uuid="76f82a96-cd9f-42c8-bddf-ecd04690a1df" xmi:type="uml:Comment">
                <body>A specification of the substitution of an argument type name for a template parameter.
</body>
                <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution"/>
            </ownedComment>
            <generalization xmi:id="Alf-TemplateParameterSubstitution-generalization"
                xmi:uuid="e69f5a16-d296-42de-be0e-e64e9f0d439d" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-TemplateParameterSubstitution-parameterName"
                xmi:uuid="211248ce-73f4-428c-bf20-3a3423b7040b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TemplateParameterSubstitution-parameterName-ownedComment"
                    xmi:uuid="42b6848c-08f8-4762-936e-75f88b5a19a2" xmi:type="uml:Comment">
                    <body>The name of the template parameter.
</body>
                    <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution-parameterName"/>
                </ownedComment>
                <name>parameterName</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TemplateParameterSubstitution-argumentName"
                xmi:uuid="8ee9b227-5d52-4a08-ae31-cf23182abbed" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-TemplateParameterSubstitution-argumentName-ownedComment"
                    xmi:uuid="f5444e84-495f-400d-9606-0e77ff81495b" xmi:type="uml:Comment">
                    <body>The name of the argument type.
</body>
                    <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution-argumentName"/>
                </ownedComment>
                <name>argumentName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_argumentName_templateParameterSubstitution"/>
            </ownedAttribute>
            <name>TemplateParameterSubstitution</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-EqualityExpression"
            xmi:uuid="5879890d-b131-442d-9df3-b37a8901b062" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-EqualityExpression-ownedComment"
                xmi:uuid="9a03b5d4-4ef8-4243-ac4b-842282a4ce59" xmi:type="uml:Comment">
                <body>A binary expression that tests the equality of its operands.
</body>
                <annotatedElement xmi:idref="Alf-EqualityExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation"
                xmi:uuid="0d6b72a1-0ecc-4721-b7b9-c8a116031161" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation-specification"
                    xmi:uuid="46fca83c-9675-4606-98db-ce718b660655" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression is negated if its operator is "!=".
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionIsNegatedDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionTypeDerivation"
                xmi:uuid="195e87f3-77a6-488d-be77-95a16ce4c330" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionTypeDerivation-specification"
                    xmi:uuid="ac328c5e-4ccb-4403-9be2-aaacf0adc61b" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression has type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionLowerDerivation"
                xmi:uuid="5891f8d5-8b55-4318-b663-717506c45f55" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionLowerDerivation-specification"
                    xmi:uuid="dfdb5f74-38f1-4a60-b22e-d52cb80d53b0" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionUpperDerivation"
                xmi:uuid="ebd9d622-c8d3-422b-a2b4-38225b49b268" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionUpperDerivation-specification"
                    xmi:uuid="4389448c-5520-4632-acf2-758a520e8552" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionIsRealConversion1Derivation"
                xmi:uuid="bc19c7ee-34a5-49e2-a1ea-a00fc50c9651" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionIsRealConversion1Derivation-specification"
                    xmi:uuid="f7a6b0af-3991-4cbd-9c2c-3dd78a8e9263" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression requires Real conversion if the first operand is of a type that conforms to type Integer and the second is of a type that conforms to type Real.
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionIsRealConversion1Derivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionIsRealConversion2Derivation"
                xmi:uuid="fdd3e23f-1e87-49dd-baef-8e6210968b50" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EqualityExpression"/>
                <specification
                    xmi:id="Alf-EqualityExpression-equalityExpressionIsRealConversion2Derivation-specification"
                    xmi:uuid="46e1ddeb-756a-4321-917c-11fa5fb9800e" xmi:type="uml:OpaqueExpression">
                    <body>An equality expression requires Real conversion if the first operand is of type Real and the second is of type Integer
.
</body>
                    <language>English</language>
                </specification>
                <name>equalityExpressionIsRealConversion2Derivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-EqualityExpression-generalization"
                xmi:uuid="7e2b5c8f-ec28-4107-9529-9fe878e78f3b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-EqualityExpression-isNegated"
                xmi:uuid="8d6db654-ce87-40f3-bda3-4fb58a0a190b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-EqualityExpression-isNegated-ownedComment"
                    xmi:uuid="acba5fcd-cc0d-4278-b942-71c250060316" xmi:type="uml:Comment">
                    <body>Whether the test is for being not equal.
</body>
                    <annotatedElement xmi:idref="Alf-EqualityExpression-isNegated"/>
                </ownedComment>
                <name>isNegated</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-EqualityExpression-isRealConversion1"
                xmi:uuid="b7ce84d3-9c4f-43bb-93ad-b0078abbb9ab" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-EqualityExpression-isRealConversion1-ownedComment"
                    xmi:uuid="c6ea1895-0a75-4e64-8430-9e394f4352db" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the first operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-EqualityExpression-isRealConversion1"/>
                </ownedComment>
                <name>isRealConversion1</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-EqualityExpression-isRealConversion2"
                xmi:uuid="8397f27c-1db2-4692-b5aa-886c236366fe" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-EqualityExpression-isRealConversion2-ownedComment"
                    xmi:uuid="6eef5f91-35d1-420c-8edf-4f28cffc83a3" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the second operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-EqualityExpression-isRealConversion2"/>
                </ownedComment>
                <name>isRealConversion2</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-EqualityExpression-adjustAssignments"
                xmi:uuid="39861890-2199-4e56-8a0b-e42b4443b6e2" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-EqualityExpression-adjustAssignments-ownedComment"
                    xmi:uuid="63e99d7a-89a9-4496-a0d6-20da64d24c3c" xmi:type="uml:Comment">
                    <body>If the one operand expression has multiplicity 0..0, then check the other operand expression for known nulls and non-nulls, using the exclusive-or of the given truth condition and whether the equality expression is negated or not.
</body>
                    <annotatedElement xmi:idref="Alf-EqualityExpression-adjustAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EqualityExpression-adjustAssignments-assignments"
                    xmi:uuid="cacd3d6b-d22a-4b60-ab2d-dec58a458373" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-EqualityExpression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="21107906-95a0-4dd7-be57-0a736af7f3bd"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-EqualityExpression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="410954eb-318e-4586-b3af-94718a4689d0"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EqualityExpression-adjustAssignments-condition"
                    xmi:uuid="975e3b65-73a4-49b4-8b02-a572fe0d3a73" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EqualityExpression-adjustAssignments-result"
                    xmi:uuid="c02ae304-4051-457b-980f-b8e446d92da1" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-EqualityExpression-adjustAssignments-result-lowerValue"
                        xmi:uuid="92f9004c-1211-42b4-a2e8-c97cd58b678f"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-EqualityExpression-adjustAssignments-result-upperValue"
                        xmi:uuid="88dd09ac-280a-4e25-a744-8f446dfccc9b"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-EqualityExpression-minLowerBound"
                xmi:uuid="7677d8ff-e9dd-4c13-8797-33c6da6203af" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-EqualityExpression-minLowerBound-ownedComment"
                    xmi:uuid="00744162-7858-4f30-b156-693df7f9299a" xmi:type="uml:Comment">
                    <body>The minimum lower bound is 0 for operands of equality expressions.
</body>
                    <annotatedElement xmi:idref="Alf-EqualityExpression-minLowerBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EqualityExpression-minLowerBound-result"
                    xmi:uuid="3e100ed4-cc2a-4a70-bda7-67eb3bf4b5de" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>minLowerBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>EqualityExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-OutputNamedExpression"
            xmi:uuid="b8b0b42f-f8ee-4cdf-b120-7726c0797537" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-OutputNamedExpression-ownedComment"
                xmi:uuid="cc072c88-778c-4eb8-b107-22ecc2f094af" xmi:type="uml:Comment">
                <body>A named argument expression for an output parameter.
</body>
                <annotatedElement xmi:idref="Alf-OutputNamedExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation"
                xmi:uuid="2054f07f-d6ae-4cb9-874e-8e13d63d7b6d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OutputNamedExpression"/>
                <specification
                    xmi:id="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation-specification"
                    xmi:uuid="2dcc682a-23ef-4e39-8670-432fb5839c0d" xmi:type="uml:OpaqueExpression">
                    <body>The equivalent left-hand side for an output named expression depends on the kind of expression. If the expression is a name expression with no disambiguation, then the left-hand side is a name left-hand side with the name from the name expression. If the expression is a name expression that disambiguates to a feature reference, then the left-hand side is a feature left-hand side for that feature reference. If the expression is a property access expression, then the left-hand side is a feature left-hand side for the feature reference of the property access expression. If the expression is a sequence access expression, then the left-hand side is a name left-hand side or feature left-hand side, as above, depending on whether the primary expression of the sequence access expression is a name expression or property access expression, and an index given by the index expression of the sequence access expression. Otherwise the left-hand side is empty.
</body>
                    <language>English</language>
                </specification>
                <name>outputNamedExpressionLeftHandSideDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OutputNamedExpression-outputNamedExpressionForm"
                xmi:uuid="88223b7c-2e1f-4b99-b5d1-dcb91cd15d82" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OutputNamedExpression"/>
                <specification
                    xmi:id="Alf-OutputNamedExpression-outputNamedExpressionForm-specification"
                    xmi:uuid="ab24c5c5-1c10-40da-8599-58007f74296d" xmi:type="uml:OpaqueExpression">
                    <body>The argument for an output parameter must be either be null, a name expression, a property access expression, or a sequence access expression whose primary expression is a name expression or a property access expression.
</body>
                    <language>English</language>
                </specification>
                <name>outputNamedExpressionForm</name>
            </ownedRule>
            <generalization xmi:id="Alf-OutputNamedExpression-generalization"
                xmi:uuid="90189d8d-77d0-4110-b46c-d38e89a396f6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-NamedExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-OutputNamedExpression-leftHandSide"
                xmi:uuid="9a95a312-3074-4fa7-a5d3-ba17dbaa89ef" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-OutputNamedExpression-leftHandSide-ownedComment"
                    xmi:uuid="b59284af-8c7c-4e36-a2b7-4c0fdb874244" xmi:type="uml:Comment">
                    <body>The argument expression considered as an assignment left-hand side.
</body>
                    <annotatedElement xmi:idref="Alf-OutputNamedExpression-leftHandSide"/>
                </ownedComment>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_leftHandSide_outputNamedExpression"/>
            </ownedAttribute>
            <name>OutputNamedExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Expression" xmi:uuid="d75c6746-2920-4912-bbc8-8f85186c71b9"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Expression-ownedComment"
                xmi:uuid="a6ebb0af-ffb3-45a9-998e-5d8e68c1500f" xmi:type="uml:Comment">
                <body>A model of the common properties derived for any Alf expression.

NOTE: The derivations for all properties of Expression except AssignmentsAfter are specific to its various subclasses.
</body>
                <annotatedElement xmi:idref="Alf-Expression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-Expression-expressionAssignmentAfterDerivation"
                xmi:uuid="e7931cd3-6fb8-41bd-bc5e-e8cada28de5c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Expression"/>
                <specification
                    xmi:id="Alf-Expression-expressionAssignmentAfterDerivation-specification"
                    xmi:uuid="adc99743-c338-4b84-8d09-aa83d0b78c9a" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after an expression are given by the result of the updateAssignments helper operation.
</body>
                    <language>English</language>
                </specification>
                <name>expressionAssignmentAfterDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Expression-expressionUniqueAssignments"
                xmi:uuid="57fde026-5dcc-43af-b591-32b21944cdf6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Expression"/>
                <specification xmi:id="Alf-Expression-expressionUniqueAssignments-specification"
                    xmi:uuid="dfaa07ba-eae7-459d-9fce-4acc066243dc" xmi:type="uml:OpaqueExpression">
                    <body>No name may be assigned more than once before or after an expression.
</body>
                    <language>English</language>
                </specification>
                <name>expressionUniqueAssignments</name>
            </ownedRule>
            <generalization xmi:id="Alf-Expression-generalization"
                xmi:uuid="b4bf5d93-08ee-4833-84fa-d477d5d483f5" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Expression-assignmentBefore"
                xmi:uuid="8d56490f-c366-4c66-b00c-23e26aade6ea" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Expression-assignmentBefore-ownedComment"
                    xmi:uuid="73fca6c9-dba3-47a4-b788-e083caaf0346" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically before this expression.
</body>
                    <annotatedElement xmi:idref="Alf-Expression-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Expression-assignmentBefore-lowerValue"
                    xmi:uuid="0ad659e1-63de-488e-a15d-cd9c613faa00" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Expression-assignmentBefore-upperValue"
                    xmi:uuid="308901d9-3bc4-4a21-b92b-50b7fa237f66"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_expression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Expression-assignmentAfter"
                xmi:uuid="e9a04eeb-bcc2-4996-af0a-3927975fb8b5" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Expression-assignmentAfter-ownedComment"
                    xmi:uuid="cf6326aa-8545-40d3-97d9-95dc2746321f" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically after this expression. This includes not only any assignments made within the expression, but also any assignments that are unchanged from before the expression.
</body>
                    <annotatedElement xmi:idref="Alf-Expression-assignmentAfter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Expression-assignmentAfter-lowerValue"
                    xmi:uuid="b0136da6-88f2-465e-8ad2-e4c555aeb5ff" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Expression-assignmentAfter-upperValue"
                    xmi:uuid="c08697aa-8b88-42af-bdf3-a42b125f1e0d"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentAfter</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentAfter_expression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Expression-upper"
                xmi:uuid="debdd2f8-e1c9-476c-9311-b7c8815d1924" xmi:type="uml:Property">
                <type
                    href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"/>
                <ownedComment xmi:id="Alf-Expression-upper-ownedComment"
                    xmi:uuid="b937e392-adac-488e-a50e-b407f49f498a" xmi:type="uml:Comment">
                    <body>The statically determined upper bound of the multiplicity of this expression. 
</body>
                    <annotatedElement xmi:idref="Alf-Expression-upper"/>
                </ownedComment>
                <name>upper</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Expression-lower"
                xmi:uuid="f6042f43-f108-40fa-afa2-35fd05283f8a" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                <ownedComment xmi:id="Alf-Expression-lower-ownedComment"
                    xmi:uuid="59fb210e-b858-4efa-8a85-a887816ac83d" xmi:type="uml:Comment">
                    <body>The statically determined lower bound of the multiplicity of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-Expression-lower"/>
                </ownedComment>
                <name>lower</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Expression-type"
                xmi:uuid="6e2dc058-5cd9-4b85-9db2-a2eb7c474c00" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Expression-type-ownedComment"
                    xmi:uuid="037e6b8d-7268-4fe9-8873-8515875df2d0" xmi:type="uml:Comment">
                    <body>A reference to the element that specifies the statically determined type for this expression (if any). 
</body>
                    <annotatedElement xmi:idref="Alf-Expression-type"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Expression-type-lowerValue"
                    xmi:uuid="ca2ba453-3a09-4154-bf1b-50a863a4855f" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_type_expression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-Expression-updateAssignments"
                xmi:uuid="f5c0e839-fc26-4095-8298-bf5a7115c596" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Expression-updateAssignments-ownedComment"
                    xmi:uuid="5f94ec6e-14f4-40e5-a8b2-81651eac0efc" xmi:type="uml:Comment">
                    <body>Returns the assignments from before this expression updated for any assignments made in the expression. By default, this is the same set as the assignments before the expression. This operation is redefined only in subclasses of Expression for kinds of expressions that make assignments.
</body>
                    <annotatedElement xmi:idref="Alf-Expression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Expression-updateAssignments-result"
                    xmi:uuid="17ca6068-f14c-4d3f-abc2-f9120e96352f" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-updateAssignments-result-lowerValue"
                        xmi:uuid="853ab224-83cb-4f54-a143-8711671e6d19"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-updateAssignments-result-upperValue"
                        xmi:uuid="8ee23653-ca71-4f42-b3fc-8a89eff63f09"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Expression-adjustAssignments"
                xmi:uuid="0cea940b-5d2e-4e83-96ba-f3f4881969cf" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Expression-adjustAssignments-ownedComment"
                    xmi:uuid="9f6640c1-64e0-44b4-9cd5-00911bd3fd2b" xmi:type="uml:Comment">
                    <body>Returns the given assignments, adjusted for known nulls, known non-nulls and best known types, based on the given truth condition. By default, no changes are made. (This operation is overridden for conditional logical, binary unary, equality, behavior invocation, sequence operation and classification expressions that may be used to form checks for null and non-null values and type classification.)
</body>
                    <annotatedElement xmi:idref="Alf-Expression-adjustAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Expression-adjustAssignments-assignments"
                    xmi:uuid="85714d28-76b7-40d9-a98c-b3e3dd6b56e0" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="2606375f-ed3c-45e3-b39e-2356e3effa70"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="974353ba-80fc-41af-bd8f-bc83247dd6e2"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustAssignments-condition"
                    xmi:uuid="d85c18de-9b21-4dfc-ab06-f5b78b0c251e" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustAssignments-result"
                    xmi:uuid="b00e11cc-1483-419e-a9e2-19470716cbf7" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustAssignments-result-lowerValue"
                        xmi:uuid="f281e822-ea92-4ef5-b5ab-032a1241bc5a"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustAssignments-result-upperValue"
                        xmi:uuid="76a1b84a-f25d-4932-978c-061d2a3fef86"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Expression-adjustMultiplicity"
                xmi:uuid="0b3fe21a-5ad2-4d9e-a940-1c883c5fa44f" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Expression-adjustMultiplicity-ownedComment"
                    xmi:uuid="cf267ccb-1d73-41c0-9392-f705f4e694b1" xmi:type="uml:Comment">
                    <body>Returns the given assignments, adjusted for known nulls and non-nulls, based on the given truth condition. By default, no changes are made. (This operation is overridden for name and assignment expressions that may be used to provide the names that are checked for being null or non-null.)
</body>
                    <annotatedElement xmi:idref="Alf-Expression-adjustMultiplicity"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Expression-adjustMultiplicity-assignments"
                    xmi:uuid="700fd53f-6bd1-4abf-8afb-7109528898ef" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustMultiplicity-assignments-lowerValue"
                        xmi:uuid="ee208c0e-9251-46df-a392-992e5c3576fd"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustMultiplicity-assignments-upperValue"
                        xmi:uuid="7af34b68-d310-4c74-bf26-bcdc4680c4b5"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustMultiplicity-condition"
                    xmi:uuid="31d88a2b-70c4-4ddd-acb2-0c31fbcbcd97" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustMultiplicity-result"
                    xmi:uuid="f7f4078d-ef52-4614-a64f-5822691666f5" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustMultiplicity-result-lowerValue"
                        xmi:uuid="073006ff-d28c-4f8e-912e-dd4f2b944ee2"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustMultiplicity-result-upperValue"
                        xmi:uuid="bedeb160-8896-4d8f-ad34-16efc027abd7"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustMultiplicity</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Expression-adjustType"
                xmi:uuid="07c9ab11-5119-48d8-be7f-5cfc4df2e8d7" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Expression-adjustType-ownedComment"
                    xmi:uuid="ebbc2ac2-1a8a-436f-bf13-20665ea3c65e" xmi:type="uml:Comment">
                    <body>Returns the given assignments, adjusted for the given best-known subtype. By default, no changes are made. (This operation is overridden by name and assignment expressions that may be used to provide the names that are checked for type classification.)
</body>
                    <annotatedElement xmi:idref="Alf-Expression-adjustType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Expression-adjustType-assignments"
                    xmi:uuid="d6fefc9f-8bca-4549-90fe-01ec2b5cda1b" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustType-assignments-lowerValue"
                        xmi:uuid="567ea779-dddf-4795-8227-64619a9dccf8"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustType-assignments-upperValue"
                        xmi:uuid="8ee9c0b6-0b74-4a18-aea2-8fe5fc5ed829"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustType-subtype"
                    xmi:uuid="ee077c47-a60e-4ed4-b88a-e3a66909c461" xmi:type="uml:Parameter">
                    <name>subtype</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Expression-adjustType-result"
                    xmi:uuid="a0cd3439-b08c-4f61-b7d7-fd3f6dea5edc" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-Expression-adjustType-result-lowerValue"
                        xmi:uuid="5ecb0c8d-7056-41e1-9b16-2f012cd0caab"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-Expression-adjustType-result-upperValue"
                        xmi:uuid="fd5af3c6-71f4-4766-849b-94eb6f6f942e"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Expression-declaredType"
                xmi:uuid="5728be00-9b55-4c2e-b620-8db5a970baec" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Expression-declaredType-ownedComment"
                    xmi:uuid="b719b5ab-19c7-4ed6-9236-859806154203" xmi:type="uml:Comment">
                    <body>Return the type of the expression, based on the originally declared types of names in the expression. By default, this is the expression type.
</body>
                    <annotatedElement xmi:idref="Alf-Expression-declaredType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Expression-declaredType-result"
                    xmi:uuid="63e43d84-d121-4db5-8862-bfad1ed2e314" xmi:type="uml:Parameter">
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>declaredType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>Expression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-RelationalExpression"
            xmi:uuid="2140e529-e24c-4fe1-9178-cb1a951ffad5" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-RelationalExpression-ownedComment"
                xmi:uuid="2cf72bb6-50f5-43fc-bc1d-fb762513000c" xmi:type="uml:Comment">
                <body>A binary expression with a relational operator.
</body>
                <annotatedElement xmi:idref="Alf-RelationalExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation"
                xmi:uuid="ce4e961f-184c-45a7-b379-5e56a83382be" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation-specification"
                    xmi:uuid="81a10170-8632-4281-b1f4-af6c1b0619d8" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression is an UnlimitedNatural comparison if either one of its operands has type UnlimitedNatural.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionIsUnlimitedNaturalDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionTypeDerivation"
                xmi:uuid="6c3b6fc4-8242-4991-b0d8-faeb9ee3a060" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionTypeDerivation-specification"
                    xmi:uuid="cccdaad0-8462-4aa3-a174-1b1ef515b12a" xmi:type="uml:OpaqueExpression">
                    <body>The type of a relational expression is Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionLowerDerivation"
                xmi:uuid="e8ae9137-bd7c-4d4c-a177-82e89c320e5e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionLowerDerivation-specification"
                    xmi:uuid="7b663695-dd5f-4e24-b311-66858cbcb2da" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is 0 and 1 otherwise.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionUpperDerivation"
                xmi:uuid="693bbdf9-310b-453b-a692-ab653e565fe2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionUpperDerivation-specification"
                    xmi:uuid="249cd0db-3d65-4c19-bf60-16f808109489" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionOperandTypes"
                xmi:uuid="65384bcd-75c6-49a2-b593-5db73f664732" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionOperandTypes-specification"
                    xmi:uuid="736d7bb6-b611-465a-8a33-67d4fe80ddb7" xmi:type="uml:OpaqueExpression">
                    <body>The operand expressions for a comparison operator must both be of a type that conforms to type Natural, Integer or Real, or both be of a type that conforms to type Natural or UnlimitedNatural.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionOperandTypes</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-RelationalExpression-relationalExpressionIsRealConversion1Derivation"
                xmi:uuid="35c2a819-b499-41c0-a792-ab72d75fbab1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionIsRealConversion1Derivation-specification"
                    xmi:uuid="431aeec1-3c40-4a2f-a921-07fbc8852a69" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression requires Real conversion if it is a Real comparison and its first operand is of a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionIsRealConversion1Derivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-RelationalExpression-relationalExpressionIsRealConversion2Derivation"
                xmi:uuid="d149952e-49c1-47b4-934e-cc099ff4ad12" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionIsRealConversion2Derivation-specification"
                    xmi:uuid="2fc89265-1556-4a17-bd33-372a1c375c94" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression requires Real conversion if it is a Real comparison and its second operand is of a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionIsRealConversion2Derivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionIsRealDerivation"
                xmi:uuid="870a6825-9f49-4e0b-bd0c-d756c4621eca" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-RelationalExpression"/>
                <specification
                    xmi:id="Alf-RelationalExpression-relationalExpressionIsRealDerivation-specification"
                    xmi:uuid="5d8bc495-d444-46cd-b1fe-a88734b7129a" xmi:type="uml:OpaqueExpression">
                    <body>A relational expression is a Real comparison if either one of its operations has a type that conforms to type Real.
</body>
                    <language>English</language>
                </specification>
                <name>relationalExpressionIsRealDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-RelationalExpression-generalization"
                xmi:uuid="3e988478-5400-4cf8-83ae-9a2283ad18e1" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-RelationalExpression-isUnlimitedNatural"
                xmi:uuid="5234a320-bc08-4e60-8676-1af5b0fc492c" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-RelationalExpression-isUnlimitedNatural-ownedComment"
                    xmi:uuid="70c1b9c3-38d3-4ea1-b115-3063a21cb808" xmi:type="uml:Comment">
                    <body>Whether this is an UnlimitedNatural comparison.
</body>
                    <annotatedElement xmi:idref="Alf-RelationalExpression-isUnlimitedNatural"/>
                </ownedComment>
                <name>isUnlimitedNatural</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-RelationalExpression-isReal"
                xmi:uuid="85d538c6-b731-4a29-afd4-2c6ece9da0fa" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-RelationalExpression-isReal-ownedComment"
                    xmi:uuid="741c6cea-6d1c-43fb-a668-21490e3344c2" xmi:type="uml:Comment">
                    <body>Whether this is a Real comparison.
</body>
                    <annotatedElement xmi:idref="Alf-RelationalExpression-isReal"/>
                </ownedComment>
                <name>isReal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-RelationalExpression-isRealConversion1"
                xmi:uuid="6f9d3b0e-b07e-4fcb-bfda-3754a0ffb321" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-RelationalExpression-isRealConversion1-ownedComment"
                    xmi:uuid="daf6eb76-2118-4413-bd66-f1468ed5ad78" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the first operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-RelationalExpression-isRealConversion1"/>
                </ownedComment>
                <name>isRealConversion1</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-RelationalExpression-isRealConversion2"
                xmi:uuid="a0d871c4-f08b-44e5-97d7-11e94c6a564f" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-RelationalExpression-isRealConversion2-ownedComment"
                    xmi:uuid="35f0afaf-22c1-48f5-a42a-25ac61899374" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the second operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-RelationalExpression-isRealConversion2"/>
                </ownedComment>
                <name>isRealConversion2</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-RelationalExpression-minLowerBound"
                xmi:uuid="26fb26c3-271e-4ba0-ae36-05933cdcb17a" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-RelationalExpression-minLowerBound-ownedComment"
                    xmi:uuid="4f208ba7-67f8-4e12-8bce-a07766e90cab" xmi:type="uml:Comment">
                    <body>The minimum lower bound is 0 for operands of relational expressions (this allows for the propagation of a null returned from an arithmetic expression used as an operand).
</body>
                    <annotatedElement xmi:idref="Alf-RelationalExpression-minLowerBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-RelationalExpression-minLowerBound-result"
                    xmi:uuid="eab19ad7-aa24-4898-82d0-04f65dcfcfa3" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>minLowerBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>RelationalExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PositionalTuple"
            xmi:uuid="3a960e78-3680-46db-80a6-41548206ddfd" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PositionalTuple-ownedComment"
                xmi:uuid="3b9f6c41-398c-40f6-bc37-c87fc36ff210" xmi:type="uml:Comment">
                <body>A tuple in which the arguments are matched to parameters in order by position.
</body>
                <annotatedElement xmi:idref="Alf-PositionalTuple"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-PositionalTuple-positionalTupleArguments"
                xmi:uuid="c4eb95ba-ce3c-4119-9fe0-6d273cd3a401" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PositionalTuple"/>
                <specification xmi:id="Alf-PositionalTuple-positionalTupleArguments-specification"
                    xmi:uuid="aaa91a7f-bde6-4af2-807c-22f09eda233d" xmi:type="uml:OpaqueExpression">
                    <body>A positional tuple must not have more arguments than the invocation it is for has parameters.
</body>
                    <language>English</language>
                </specification>
                <name>positionalTupleArguments</name>
            </ownedRule>
            <generalization xmi:id="Alf-PositionalTuple-generalization"
                xmi:uuid="6a7f8a99-60e3-43ef-8571-d11f44ed5541" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Tuple"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-PositionalTuple-expression"
                xmi:uuid="6305f9cb-7634-4f2d-b896-665d1b896931" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-PositionalTuple-expression-ownedComment"
                    xmi:uuid="ea628852-f401-45e8-857a-5d1118297baf" xmi:type="uml:Comment">
                    <body>The argument expressions for this tuple, to be matched by position to the invocation parameters.
</body>
                    <annotatedElement xmi:idref="Alf-PositionalTuple-expression"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-PositionalTuple-expression-lowerValue"
                    xmi:uuid="b53e1f59-fc55-4c2b-b5fa-eee51f892e74" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-PositionalTuple-expression-upperValue"
                    xmi:uuid="f1a91f3e-9774-4c47-a39c-76cd98f7a8eb"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>expression</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_positionalTuple"/>
            </ownedAttribute>
            <name>PositionalTuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NameBinding" xmi:uuid="51628683-bce3-4246-92ca-6141b4f47887"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NameBinding-ownedComment"
                xmi:uuid="116fbfea-6aa2-4594-920d-6084183542c4" xmi:type="uml:Comment">
                <body>An unqualified name, optionally with a template binding.
</body>
                <annotatedElement xmi:idref="Alf-NameBinding"/>
            </ownedComment>
            <generalization xmi:id="Alf-NameBinding-generalization"
                xmi:uuid="268bf700-a525-4188-90ad-be65081acbf6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NameBinding-binding"
                xmi:uuid="cc9d5ea3-f4d9-4392-ae5f-14d76228cd63" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameBinding-binding-ownedComment"
                    xmi:uuid="7daa6773-617a-4630-b062-d08ff1652678" xmi:type="uml:Comment">
                    <body>The template binding to be used, if the name denotes a template.
</body>
                    <annotatedElement xmi:idref="Alf-NameBinding-binding"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NameBinding-binding-lowerValue"
                    xmi:uuid="0b868564-51ae-48ab-a46c-cfbb771b11e4" xmi:type="uml:LiteralInteger"/>
                <name>binding</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-TemplateBinding"/>
                <association xmi:idref="Alf-A_binding_nameBinding"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NameBinding-name"
                xmi:uuid="97b965e6-3f71-4915-ae90-2cf4a7526ff8" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-NameBinding-name-ownedComment"
                    xmi:uuid="24914c1d-47f6-492b-a78b-0473955715cb" xmi:type="uml:Comment">
                    <body>An unqualified name. For names that appeared as unrestricted names in the input text, the string value here excludes the surrounding single quote characters and has any escape sequences resolved to the denoted special characters.

</body>
                    <annotatedElement xmi:idref="Alf-NameBinding-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>NameBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceElements"
            xmi:uuid="a7bdce93-f2cc-4bd8-a341-f91ded3a2979" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceElements-ownedComment"
                xmi:uuid="c2a04899-22ac-4008-8c83-83b10cd275b9" xmi:type="uml:Comment">
                <body>A specification of the elements of a sequence.
</body>
                <annotatedElement xmi:idref="Alf-SequenceElements"/>
            </ownedComment>
            <generalization xmi:id="Alf-SequenceElements-generalization"
                xmi:uuid="306a56d9-4034-4ec1-9aff-532fe47d19f7" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceElements-upper"
                xmi:uuid="740d5533-835b-433f-9102-b813ea74e7e5" xmi:type="uml:Property">
                <type
                    href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"/>
                <ownedComment xmi:id="Alf-SequenceElements-upper-ownedComment"
                    xmi:uuid="2a6f8d99-5677-4ffe-b95d-8ce2851f5ac8" xmi:type="uml:Comment">
                    <body>The multiplicity upper bound of the elements of the sequence. The derivation for this property is given in the subclasses of SequenceElements.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceElements-upper"/>
                </ownedComment>
                <name>upper</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceElements-lower"
                xmi:uuid="7c1f5045-30ea-4d44-8280-f61f3e2be949" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                <ownedComment xmi:id="Alf-SequenceElements-lower-ownedComment"
                    xmi:uuid="559205d0-5b21-48a3-aca0-8a1e65884bfa" xmi:type="uml:Comment">
                    <body>The multiplicity lower bound of the elements of the sequence. The derivation for this property is given in the subclasses of SequenceElements.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceElements-lower"/>
                </ownedComment>
                <name>lower</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>SequenceElements</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-BehaviorInvocationExpression"
            xmi:uuid="d6319f6e-aa42-4ed4-b0e8-8554aa357bbf" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BehaviorInvocationExpression-ownedComment"
                xmi:uuid="14d88a2e-e44a-4514-92f9-7b362e8c5ef8" xmi:type="uml:Comment">
                <body>An invocation of a behavior referenced by name.
</body>
                <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation"
                xmi:uuid="b2acea87-8d4c-4a2c-8d3e-a4e92ac924f6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
                <specification
                    xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation-specification"
                    xmi:uuid="cb60fbde-0381-4497-ade4-e8bcdd4e6d4e" xmi:type="uml:OpaqueExpression">
                    <body>If the target of a behavior invocation expression resolves to a behavior, then the referent of the expression is that behavior. If the target disambiguates to a feature reference, then the reference is the operation or signal being invoked. Otherwise, if the target resolves to a property that is an association end, then the referent is that property.
</body>
                    <language>English</language>
                </specification>
                <name>behaviorInvocationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation"
                xmi:uuid="d259485e-39e0-4684-a7cf-b180b557b198" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
                <specification
                    xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation-specification"
                    xmi:uuid="14e6fc37-f630-4407-8be8-a3513bea1558" xmi:type="uml:OpaqueExpression">
                    <body>If the target qualified name disambiguates to a feature reference, then the feature of a behavior invocation expression is that feature reference.
</body>
                    <language>English</language>
                </specification>
                <name>behaviorInvocationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint"
                xmi:uuid="35f33016-9aa8-41df-881c-e383604ed7ca" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
                <specification
                    xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint-specification"
                    xmi:uuid="39f04a39-8a22-497c-99d1-ab1d669fc126" xmi:type="uml:OpaqueExpression">
                    <body>If the target qualified name does not disambiguate to a feature reference, then it must resolve to a behavior or an association end, and, if it is a template behavior, then the implicit binding of this template must be legal. Otherwise it must resolve to a single feature referent according to the overloading resolution rules, unless it is an implicit destructor call (in which case it has no referent).
</body>
                    <language>English</language>
                </specification>
                <name>behaviorInvocationExpressionReferentConstraint</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility"
                xmi:uuid="11d9f454-9d61-4cfe-a893-19f811bc7bc1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
                <specification
                    xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility-specification"
                    xmi:uuid="9026659c-8803-45f1-9f22-de7404ac8300" xmi:type="uml:OpaqueExpression">
                    <body>If the target qualified name does not disambiguate to a feature reference, then each input argument expression must be assignable to its corresponding parameter and each output argument expression must be assignable from its corresponding parameter. (Note that this implies that the type of an argument expression for an inout parameter must be the same as the type of that parameter.)
</body>
                    <language>English</language>
                </specification>
                <name>behaviorInvocationExpressionArgumentCompatibility</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor"
                xmi:uuid="ee7b6900-c629-49c2-9994-97d57113cffc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
                <specification
                    xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor-specification"
                    xmi:uuid="fe082732-fdf7-4de5-a8a5-29546d3ac7ac" xmi:type="uml:OpaqueExpression">
                    <body>The referent may only be a constructor (as a result of the target disambiguating to a feature reference) if this behavior invocation expression is the expression of an expression statement that is the first statement in the definition for the method of a constructor operation.
</body>
                    <language>English</language>
                </specification>
                <name>behaviorInvocationExpressionAlternativeConstructor</name>
            </ownedRule>
            <generalization xmi:id="Alf-BehaviorInvocationExpression-generalization"
                xmi:uuid="4a15bca3-e786-4019-b4b3-41c9dd2b49bb" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BehaviorInvocationExpression-target"
                xmi:uuid="36ac4704-500d-4899-b643-60b6908afaaf" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-BehaviorInvocationExpression-target-ownedComment"
                    xmi:uuid="3308ce75-3ab7-49ab-9e27-f79d6467abfc" xmi:type="uml:Comment">
                    <body>The qualified name of the behavior to be invoked.
</body>
                    <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-target"/>
                </ownedComment>
                <name>target</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_target_behaviorInvocationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments"
                xmi:uuid="93f81389-b053-490f-b9d2-d39c40c0e845" xmi:type="uml:Operation">
                <ownedComment
                    xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-ownedComment"
                    xmi:uuid="cd764f2e-e384-454e-b1de-1e2f0baf4350" xmi:type="uml:Comment">
                    <body>If the invoked behavior is CollectionFunctions::isEmpty or SequenceFunctions::IsEmpty, then check the argument expression for known nulls and non-nulls using the given truth condition. If the invoked behavior is CollectionFunctions::notEmpty or SequenceFunctions::NotEmpty, then check the argument expression for known nulls and non-nulls using the negation of the given truth condition.
</body>
                    <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-adjustAssignments"
                    />
                </ownedComment>
                <ownedParameter
                    xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-assignments"
                    xmi:uuid="88fd6920-e97f-45bc-80f0-27cd25fc905c" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="fe4f7795-687a-45e9-86a2-5ae811a0abd9"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="bc735842-155e-49eb-9422-524ffe98ba3a"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter
                    xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-condition"
                    xmi:uuid="3fd9ae01-5ab3-4c47-ab59-51963c5feeaf" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-result"
                    xmi:uuid="2052e184-c2a7-4c1e-b6d5-624d3ca9f2b5" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-result-lowerValue"
                        xmi:uuid="5116d5e4-5995-40b2-8e8e-19171c5fa961"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-BehaviorInvocationExpression-adjustAssignments-result-upperValue"
                        xmi:uuid="cb81449a-b71e-4a35-bf1e-5110e3d17d6c"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>BehaviorInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceRange" xmi:uuid="8cf99851-d23a-46cc-bf3b-981ad8ef9f62"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceRange-ownedComment"
                xmi:uuid="5744517c-2427-42b0-8e46-4179ca6c6600" xmi:type="uml:Comment">
                <body>A specification of the elements of a sequence as a range of integers.
</body>
                <annotatedElement xmi:idref="Alf-SequenceRange"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeLowerDerivation"
                xmi:uuid="a2082b9d-3d44-4119-acd4-d507cac4fd7c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceRange"/>
                <specification xmi:id="Alf-SequenceRange-sequenceRangeLowerDerivation-specification"
                    xmi:uuid="d567c7c9-bbe3-4d72-975b-d2475937b3a2" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a sequence range is 0.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceRangeLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeUpperDerivation"
                xmi:uuid="18857420-089d-48d4-8b37-e7b6cdd6d301" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceRange"/>
                <specification xmi:id="Alf-SequenceRange-sequenceRangeUpperDerivation-specification"
                    xmi:uuid="3a11c54a-9d82-4755-887f-0d364aba9fc6" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity uper bound of a sequence range is * (since it is not possible, in general, to statically determine a more constrained upper bound).
</body>
                    <language>English</language>
                </specification>
                <name>sequenceRangeUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeExpressionMultiplicity"
                xmi:uuid="438412dc-150d-4dd7-9017-6df339e39301" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceRange"/>
                <specification
                    xmi:id="Alf-SequenceRange-sequenceRangeExpressionMultiplicity-specification"
                    xmi:uuid="14490c94-42a0-4586-b2b1-5bc866c2ca4c" xmi:type="uml:OpaqueExpression">
                    <body>Both expression in a sequence range must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceRangeExpressionMultiplicity</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeAssignments"
                xmi:uuid="9ca8aa10-885a-4b60-a296-3acc94f4ac91" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceRange"/>
                <specification xmi:id="Alf-SequenceRange-sequenceRangeAssignments-specification"
                    xmi:uuid="6e0b9aac-1850-462e-8f61-7ba8bd1761f1" xmi:type="uml:OpaqueExpression">
                    <body>A local name may be defined or reassigned in at most one of the expressions of a sequence range.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceRangeAssignments</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceRange-generalization"
                xmi:uuid="d48cce76-93da-44c6-899a-f2b3b9bfcd1a" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceElements"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceRange-rangeLower"
                xmi:uuid="fa7c3513-c987-4a2b-924f-9df37accc6fa" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceRange-rangeLower-ownedComment"
                    xmi:uuid="1b45edfe-73de-4678-a888-c51ddb704778" xmi:type="uml:Comment">
                    <body>The expression whose value gives the lower bound for the range.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceRange-rangeLower"/>
                </ownedComment>
                <name>rangeLower</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_rangeLower_sequenceRange"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceRange-rangeUpper"
                xmi:uuid="4971a4d4-7bf7-4a67-a63a-bba79353be18" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceRange-rangeUpper-ownedComment"
                    xmi:uuid="046f2890-6d03-4e67-99e9-58b44af4da1c" xmi:type="uml:Comment">
                    <body>The expression whose value gives the upper bound for the range.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceRange-rangeUpper"/>
                </ownedComment>
                <name>rangeUpper</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_rangeUpper_sequenceRange"/>
            </ownedAttribute>
            <name>SequenceRange</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NameExpression" xmi:uuid="3c0ddafd-9024-47ed-a8fd-54b55ec36cfa"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NameExpression-ownedComment"
                xmi:uuid="a0d72abe-9a75-43b6-b2cb-df69d39f40d2" xmi:type="uml:Comment">
                <body>An expression that comprises a name reference.
</body>
                <annotatedElement xmi:idref="Alf-NameExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionAssignmentDerivation"
                xmi:uuid="16a6ec3b-a9fb-43c4-9e0e-b6eea13b518d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionAssignmentDerivation-specification"
                    xmi:uuid="f9efc96e-4036-4e22-b326-e9c6bf277f14" xmi:type="uml:OpaqueExpression">
                    <body>If the name in a name expression is a local name or parameter name for an out parameter, then its assignment is its assigned source before the expression. If the name is a parameter name for an in or inout parameter, then its assignment is its assigned source before the expression, if it has one, and, otherwise, it is a new assignment whose source is the named parameter and whose type and multiplicity are those of the parameter.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionAssignmentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation"
                xmi:uuid="98e3ab7a-fbcb-48a4-a695-17eb42904744" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation-specification"
                    xmi:uuid="a77e1713-644a-411e-9263-ccc0840c9cf9" xmi:type="uml:OpaqueExpression">
                    <body>If the name in a name expression resolves to an enumeration literal name, then that is the enumeration literal for the expression.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionEnumerationLiteralDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionPropertyAccessDerivation"
                xmi:uuid="c805fe9c-0c8d-4559-be4b-11997f343c21" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionPropertyAccessDerivation-specification"
                    xmi:uuid="c446bf76-ae43-4d3d-b0c4-f3298fd430e4" xmi:type="uml:OpaqueExpression">
                    <body>If the name in a name expression disambiguates to a feature reference, then the equivalent property access expression has the disambiguation of the name as its feature. The assignments before the property access expression are the same as those before the name expression.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionPropertyAccessDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionTypeDerivation"
                xmi:uuid="9a4f0d73-6898-4015-89e5-66b2d9ffa3aa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionTypeDerivation-specification"
                    xmi:uuid="7745ac07-81f4-4f64-ada6-6e383f914b69" xmi:type="uml:OpaqueExpression">
                    <body>The type of a name expression is determined by its name. If the name is a local name or parameter with an assignment, then the type of the name expression is the best known type of that assignment. If the name is an enumeration literal, then the type of the name expression is the corresponding enumeration. If the name disambiguates to a feature reference, then the type of the name expression is the type of the equivalent property access expression.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionUpperDerivation"
                xmi:uuid="c8abdaaa-3b16-48ad-b451-32ec69b94f3f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionUpperDerivation-specification"
                    xmi:uuid="c0b7adf1-f427-4cd0-9d4b-9f4cd3cb7ada" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a name expression is determined by its name.</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionLowerDerivation"
                xmi:uuid="c183bb1e-43fc-4a0b-8e5c-6ebdb5987134" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification
                    xmi:id="Alf-NameExpression-nameExpressionLowerDerivation-specification"
                    xmi:uuid="551316f0-ff9f-4491-95b2-e23d1cc8749e" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a name expression is determined by its name.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NameExpression-nameExpressionResolution"
                xmi:uuid="5e21e218-e200-43d9-b968-0f6f02fe0b62" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NameExpression"/>
                <specification xmi:id="Alf-NameExpression-nameExpressionResolution-specification"
                    xmi:uuid="6510bd11-df12-4fb6-939f-d35baddeb290" xmi:type="uml:OpaqueExpression">
                    <body>If the name referenced by this expression is not a disambiguated feature reference or a local or parameter name, then it must resolve to exactly one enumeration literal.
</body>
                    <language>English</language>
                </specification>
                <name>nameExpressionResolution</name>
            </ownedRule>
            <generalization xmi:id="Alf-NameExpression-generalization"
                xmi:uuid="f0c170f9-d3eb-42ad-b880-2faebdc22aa9" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NameExpression-enumerationLiteral"
                xmi:uuid="5f919d27-d85d-4a77-8655-e650c53749d0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameExpression-enumerationLiteral-ownedComment"
                    xmi:uuid="b449e28f-db69-4299-b370-6f50fcad7c00" xmi:type="uml:Comment">
                    <body>The identified enumeration literal, if the referenced name is for an enumeration literal.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-enumerationLiteral"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NameExpression-enumerationLiteral-lowerValue"
                    xmi:uuid="445ec28d-1dce-4d28-a465-b0629c79132c" xmi:type="uml:LiteralInteger"/>
                <name>enumerationLiteral</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_enumerationLiteral_nameExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NameExpression-assignment"
                xmi:uuid="de6b7a21-e342-4295-aeda-bc6e746615f0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameExpression-assignment-ownedComment"
                    xmi:uuid="e607edda-5269-4d9e-b99a-fe8a61dace7f" xmi:type="uml:Comment">
                    <body>The assigned source for the referenced name, if the name is a local or parameter name.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-assignment"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NameExpression-assignment-lowerValue"
                    xmi:uuid="d0effbfd-a143-4581-964b-a42ed425574f" xmi:type="uml:LiteralInteger"/>
                <name>assignment</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignment_nameExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NameExpression-propertyAccess"
                xmi:uuid="78681c5f-1308-45a9-bba8-d316456be591" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameExpression-propertyAccess-ownedComment"
                    xmi:uuid="da875fb2-fc59-4eee-8d98-2fdbcd12f3f5" xmi:type="uml:Comment">
                    <body>The equivalent property access expression, if the referenced name disambiguates to a feature reference.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-propertyAccess"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NameExpression-propertyAccess-lowerValue"
                    xmi:uuid="2fcca9c0-6cd3-44a8-b413-9a4aa3829cd9" xmi:type="uml:LiteralInteger"/>
                <name>propertyAccess</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-PropertyAccessExpression"/>
                <association xmi:idref="Alf-A_propertyAccess_nameExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NameExpression-name"
                xmi:uuid="9e1e2053-9864-4d8b-bcd1-806a01a1a4c2" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NameExpression-name-ownedComment"
                    xmi:uuid="fe918351-125c-47a5-8522-ac494388354b" xmi:type="uml:Comment">
                    <body>The qualified name referenced in this expression. (For a local name, this will actually have no qualification.)
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_name_nameExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-NameExpression-updateAssignments"
                xmi:uuid="0039037e-d427-4159-9719-99cd2a3d263d" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-NameExpression-updateAssignments-ownedComment"
                    xmi:uuid="83c01d28-9ca5-4a77-8592-3cd719fb216f" xmi:type="uml:Comment">
                    <body>If propertyAccess is not empty (i.e., if the referenced name disambiguates to a feature reference), then return the assignments after the propertyAccess expression. Otherwise, return the result of the superclass updateAssignments operation.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NameExpression-updateAssignments-result"
                    xmi:uuid="c187894d-d63b-4001-8ea8-40afd1bdb5b7" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NameExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="629380d9-c39e-491b-bb1d-215d74119688"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NameExpression-updateAssignments-result-upperValue"
                        xmi:uuid="8a825b16-e086-488d-8269-99ebae5bc459"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NameExpression-adjustMultiplicity"
                xmi:uuid="1271dee6-ce16-48e9-8332-28469a4dae53" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NameExpression-adjustMultiplicity-ownedComment"
                    xmi:uuid="4c967a55-f5d3-4988-929e-31c25a01f35e" xmi:type="uml:Comment">
                    <body>If the name does not disambiguate to a feature reference, then it is considered known null if the condition is true and known non-null if the condition is false.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-adjustMultiplicity"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NameExpression-adjustMultiplicity-assignments"
                    xmi:uuid="7e965ff6-8011-4a18-a21c-461dc764dc43" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-NameExpression-adjustMultiplicity-assignments-lowerValue"
                        xmi:uuid="2ebff0e5-8d77-48f6-a034-5ea27b04df01"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-NameExpression-adjustMultiplicity-assignments-upperValue"
                        xmi:uuid="e8daee87-47fa-4b59-b1cd-26697966d8ac"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-NameExpression-adjustMultiplicity-condition"
                    xmi:uuid="cf032333-5e9e-4c54-b28f-8af9d1e6f29a" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-NameExpression-adjustMultiplicity-result"
                    xmi:uuid="d0000b7b-eb08-4145-9889-e5d0ef450c5f" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NameExpression-adjustMultiplicity-result-lowerValue"
                        xmi:uuid="abd6d692-3a2b-4387-9269-d069dbda49b1"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NameExpression-adjustMultiplicity-result-upperValue"
                        xmi:uuid="e119f141-4021-4277-bfca-ddf78da15db0"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustMultiplicity</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NameExpression-adjustType"
                xmi:uuid="49db69e2-dfc1-4d6b-b013-7efa1aade251" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NameExpression-adjustType-ownedComment"
                    xmi:uuid="421f7b16-2812-42d6-ba91-2d1dffe94aea" xmi:type="uml:Comment">
                    <body>If the name does not disambiguate to a feature reference, then it is considered to have the given subtype.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-adjustType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NameExpression-adjustType-assignments"
                    xmi:uuid="134445c1-7d7b-4ee8-8c3d-321df3e20ef3" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NameExpression-adjustType-assignments-lowerValue"
                        xmi:uuid="ef0acca9-2adc-4c52-bb14-0dd763844881"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NameExpression-adjustType-assignments-upperValue"
                        xmi:uuid="40e85eb1-58b9-46ad-bf69-bac7d559fafc"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-NameExpression-adjustType-subtype"
                    xmi:uuid="6b6b8560-9351-4a2c-9b87-0f2798997530" xmi:type="uml:Parameter">
                    <name>subtype</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-NameExpression-adjustType-result"
                    xmi:uuid="a2e37d99-f20f-466f-8a63-02e3cbc976ec" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NameExpression-adjustType-result-lowerValue"
                        xmi:uuid="026beafc-7c4b-4194-b018-b6357da1c992"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NameExpression-adjustType-result-upperValue"
                        xmi:uuid="57a4687c-d1ba-41d9-bb14-ba2f5ac21359"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NameExpression-declaredType"
                xmi:uuid="fdc0d4b7-657a-46d5-b2b3-7849649e52e2" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NameExpression-declaredType-ownedComment"
                    xmi:uuid="8623892b-b678-4065-a263-950d4b9525ea" xmi:type="uml:Comment">
                    <body>If a name expression has a derived assignment, then its declared type is the type of that assignment. Otherwise it is the same as the type of the expression.
</body>
                    <annotatedElement xmi:idref="Alf-NameExpression-declaredType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NameExpression-declaredType-result"
                    xmi:uuid="36fea6e3-f411-4adf-a014-86cfb0f2c007" xmi:type="uml:Parameter">
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>declaredType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>NameExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-CastExpression" xmi:uuid="4c87d2c5-1baf-40b2-a7f3-d66b2704c6c7"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-CastExpression-ownedComment"
                xmi:uuid="dbd9a94e-5f27-4db9-ae02-8fcd0fc88252" xmi:type="uml:Comment">
                <body>An expression used to filter values by type.
</body>
                <annotatedElement xmi:idref="Alf-CastExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-CastExpression-castExpressionTypeDerivation"
                xmi:uuid="024d637a-dd36-456c-b80a-4a12b41afff9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CastExpression"/>
                <specification
                    xmi:id="Alf-CastExpression-castExpressionTypeDerivation-specification"
                    xmi:uuid="051a68fa-df67-4e49-8e02-3ed6ea422e5b" xmi:type="uml:OpaqueExpression">
                    <body>The type of a cast expression is the referent of the given type name (if there is one).
</body>
                    <language>English</language>
                </specification>
                <name>castExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-CastExpression-castExpressionLowerDerivation"
                xmi:uuid="ff98530e-db87-4712-9223-f697cbe890e6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CastExpression"/>
                <specification
                    xmi:id="Alf-CastExpression-castExpressionLowerDerivation-specification"
                    xmi:uuid="7c5c59b8-9684-4cde-891a-fa2c4cfb87c3" xmi:type="uml:OpaqueExpression">
                    <body>If the type of a cast expression is empty, or its type conforms to Integer and the type of its operand expression conforms to BitString or Real, or its type conforms to BitString or Real and its operand&#39;s type conforms to Integer, or its operand&#39;s type conforms to its type, then the multiplicity lower bound of the cast expression is the same as that of its operand expression. Otherwise it is 0.
</body>
                    <language>English</language>
                </specification>
                <name>castExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-CastExpression-castExpressionUpperDerivation"
                xmi:uuid="13a6b890-b2a8-4cbb-9abf-9d3c1dddda99" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CastExpression"/>
                <specification
                    xmi:id="Alf-CastExpression-castExpressionUpperDerivation-specification"
                    xmi:uuid="2b249512-2f40-42f8-87fe-b7ee9e8c3c54" xmi:type="uml:OpaqueExpression">
                    <body>A cast expression has a multiplicity upper bound that is the same as the upper bound of its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>castExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-CastExpression-castExpressionTypeResolution"
                xmi:uuid="21df5e5c-623c-4aea-a6f6-dab3a9bb3369" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CastExpression"/>
                <specification
                    xmi:id="Alf-CastExpression-castExpressionTypeResolution-specification"
                    xmi:uuid="ceefb8c4-b49c-4311-aec5-14eba4e6de68" xmi:type="uml:OpaqueExpression">
                    <body>If the cast expression has a type name, then it must resolve to a non-template classifier.
</body>
                    <language>English</language>
                </specification>
                <name>castExpressionTypeResolution</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-CastExpression-castExpressionAssignmentsBefore"
                xmi:uuid="f36b360f-cadb-4a16-81d4-b3386d17596f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CastExpression"/>
                <specification
                    xmi:id="Alf-CastExpression-castExpressionAssignmentsBefore-specification"
                    xmi:uuid="5924e5d9-c6ac-4a37-83f8-ec4d57533fe8" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the operand of a cast expression are the same as those before the cast expression.
</body>
                    <language>English</language>
                </specification>
                <name>castExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-CastExpression-generalization"
                xmi:uuid="82e2f61c-feb7-4e26-ba2c-8428b687caab" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-CastExpression-operand"
                xmi:uuid="ac73673e-5923-40b6-9f70-09fc9e8a05e4" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-CastExpression-operand-ownedComment"
                    xmi:uuid="39814041-0fd2-4d57-a0a2-df81f61ebbc4" xmi:type="uml:Comment">
                    <body>The operand expression of the cast expression.
</body>
                    <annotatedElement xmi:idref="Alf-CastExpression-operand"/>
                </ownedComment>
                <name>operand</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_operand_castExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-CastExpression-typeName"
                xmi:uuid="22f6e914-1801-4778-865d-045d77916cd2" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-CastExpression-typeName-ownedComment"
                    xmi:uuid="e7ba00d7-abf5-47cd-ba8b-a6f39eb6b5a9" xmi:type="uml:Comment">
                    <body>The named type of the cast expression (if any)
</body>
                    <annotatedElement xmi:idref="Alf-CastExpression-typeName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-CastExpression-typeName-lowerValue"
                    xmi:uuid="d43d33ed-efa4-4239-9692-81f06c8aa86f" xmi:type="uml:LiteralInteger"/>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_castExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-CastExpression-updateAssignments"
                xmi:uuid="870cbb89-756c-4400-b2de-faceee229939" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-CastExpression-updateAssignments-ownedComment"
                    xmi:uuid="51ee9b01-ef02-4db2-8165-9332ad2d9eda" xmi:type="uml:Comment">
                    <body>The assignments after a cast expression are the same as those after its operand expression.
</body>
                    <annotatedElement xmi:idref="Alf-CastExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-CastExpression-updateAssignments-result"
                    xmi:uuid="6c8c0971-4e9a-4d74-94d9-0c0b6cea2278" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-CastExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="3ff055be-a375-441a-9667-ef8a7ab45eb8"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-CastExpression-updateAssignments-result-upperValue"
                        xmi:uuid="c4f6c0d7-fa7d-4a61-8167-652936a60eaa"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>CastExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceExpressionList"
            xmi:uuid="ba76b3dd-4ab6-419b-8422-97c4ecd4e628" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceExpressionList-ownedComment"
                xmi:uuid="68606d66-d83f-456d-947a-4ea379103a2b" xmi:type="uml:Comment">
                <body>A specification of the elements of a sequence using a list of expressions.
</body>
                <annotatedElement xmi:idref="Alf-SequenceExpressionList"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation"
                xmi:uuid="06a591fb-6eab-48d5-9043-5df9f476d7aa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpressionList"/>
                <specification
                    xmi:id="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation-specification"
                    xmi:uuid="3badac7d-3cf7-439c-aeb6-7704f4ee63cc" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of the elements of a sequence expression list is given by the sum of the lower bounds of each of the expressions in the list.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpressionListLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation"
                xmi:uuid="7f61b426-ebba-4cf3-b47a-750c03b61965" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpressionList"/>
                <specification
                    xmi:id="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation-specification"
                    xmi:uuid="09bc0f2f-89db-49ae-a133-bcf70ff41053" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of the elements of a sequence expression list is given by the sum of the upper bounds of each of the expressions in the list. If any of the expressions in the list have an unbounded upper bound, then the sequence expression list also has an unbounded upper bound.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpressionListUpperDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceExpressionList-generalization"
                xmi:uuid="7e0d6733-0ce3-4694-8ea7-1c4a0c396a8d" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceElements"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceExpressionList-element"
                xmi:uuid="c3828143-8c35-4bdc-a95e-431aa6e21a27" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceExpressionList-element-ownedComment"
                    xmi:uuid="8370b9fa-9bc8-4a02-ae2a-c7119eb42c01" xmi:type="uml:Comment">
                    <body>The list of expressions whose values determine the elements of the sequence.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpressionList-element"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SequenceExpressionList-element-lowerValue"
                    xmi:uuid="6f7c116c-30bc-4daa-8b22-47c1472ef75a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-SequenceExpressionList-element-upperValue"
                    xmi:uuid="394693c0-638b-4594-a8af-58c09ec05600"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>element</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_element_SequenceExpansionList"/>
            </ownedAttribute>
            <name>SequenceExpressionList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NaturalLiteralExpression"
            xmi:uuid="f160caf4-9641-4668-b876-b6c9eb019999" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NaturalLiteralExpression-ownedComment"
                xmi:uuid="705ce75c-3029-479d-88ba-b0fe76ae2a9e" xmi:type="uml:Comment">
                <body>An expression that comprises a natural literal.
</body>
                <annotatedElement xmi:idref="Alf-NaturalLiteralExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation"
                xmi:uuid="c3bc2f9d-c15a-4ce3-9647-07cd68d07adc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NaturalLiteralExpression"/>
                <specification
                    xmi:id="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation-specification"
                    xmi:uuid="3abfc922-0426-4332-93eb-7ee9f6bf1dcd" xmi:type="uml:OpaqueExpression">
                    <body>The type of a natural literal is the Alf library type Natural. 

NOTE: If the context of a natural literal expression unambiguously requires either an Integer or an UnlimitedNatural value, then the result of the literal expression is implicitly downcast to the required type. If the context is ambiguous, however, than an explicit cast to Integer or UnlimitedNatural must be used.
</body>
                    <language>English</language>
                </specification>
                <name>naturalLiteralExpressionTypeDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-NaturalLiteralExpression-generalization"
                xmi:uuid="757ae298-2982-4792-86e0-5ab08ba0a09f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LiteralExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NaturalLiteralExpression-image"
                xmi:uuid="ba46e35c-6c5b-4c86-a50a-2a7ce082984c" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-NaturalLiteralExpression-image-ownedComment"
                    xmi:uuid="6a6cd0c0-06dc-4e20-bf20-ec788442dd72" xmi:type="uml:Comment">
                    <body>The textual image of the literal token for this expression.
</body>
                    <annotatedElement xmi:idref="Alf-NaturalLiteralExpression-image"/>
                </ownedComment>
                <name>image</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>NaturalLiteralExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceReductionExpression"
            xmi:uuid="920eb69e-b083-4ea2-b3b7-5da608077a0c" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceReductionExpression-ownedComment"
                xmi:uuid="2c2e5a88-c81a-4877-86ea-db0035ad5378" xmi:type="uml:Comment">
                <body>An expression used to reduce a sequence of values effectively by inserting a binary operation between the values.
</body>
                <annotatedElement xmi:idref="Alf-SequenceReductionExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation"
                xmi:uuid="c8b1318f-d96b-4ce5-a75a-88bb8bc3e0bf" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation-specification"
                    xmi:uuid="022178f5-2f23-498a-b403-4df9e41da987" xmi:type="uml:OpaqueExpression">
                    <body>The referent for a sequence reduction expression is the behavior denoted by the behavior name of the expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation"
                xmi:uuid="9c71a88e-f4f0-41f1-8141-9fc856424833" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation-specification"
                    xmi:uuid="e6d15943-3a61-461c-8087-cb2ba08c3652" xmi:type="uml:OpaqueExpression">
                    <body>A sequence reduction expression has the same type as its primary expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation"
                xmi:uuid="d713317c-4417-4a3f-bdff-0ee5b8d129e4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation-specification"
                    xmi:uuid="453cfc4b-89f9-471b-a079-63f3c989d421" xmi:type="uml:OpaqueExpression">
                    <body>A sequence reduction expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation"
                xmi:uuid="ef19f59c-1a19-4957-ba98-006c4195f132" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation-specification"
                    xmi:uuid="4aa86715-9444-4ccc-b947-50ff0183426a" xmi:type="uml:OpaqueExpression">
                    <body>A sequence reduction expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior"
                xmi:uuid="c76523e3-dbc7-46a6-b025-bb1e8ce8956c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior-specification"
                    xmi:uuid="34050cc4-13eb-4475-bdcf-f0eeb844273f" xmi:type="uml:OpaqueExpression">
                    <body>The behavior name in a sequence reduction expression must denote a behavior.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionBehavior</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters"
                xmi:uuid="093dc4f9-72c2-4531-b618-f1a110cf04fa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters-specification"
                    xmi:uuid="429dcf4a-5ba1-4eb9-a63d-af578bb35dfd" xmi:type="uml:OpaqueExpression">
                    <body>The referent behavior must have two in parameters, a return parameter and no other parameters. The parameters must all have the same type as the argument expression and multiplicity [1..1].
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionBehaviorParameters</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore"
                xmi:uuid="d93a191f-b0e6-4ca1-9200-69961f14e274" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
                <specification
                    xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore-specification"
                    xmi:uuid="17557716-b0b8-44a8-aa61-ac822d3589dd" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the target expression of a sequence reduction expression are the same as the assignments before the sequence reduction expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceReductionExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceReductionExpression-generalization"
                xmi:uuid="7beb1be9-2090-4a19-b5c6-10631dae4685" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceReductionExpression-referent"
                xmi:uuid="c9911062-7fb7-4463-b709-e2f6734c8bbf" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceReductionExpression-referent-ownedComment"
                    xmi:uuid="697a8d1d-e981-48ba-8306-5e1f0beb688c" xmi:type="uml:Comment">
                    <body>A reference to the behavior to be used as the reducer.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceReductionExpression-referent"/>
                </ownedComment>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_sequenceReductionExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceReductionExpression-isOrdered"
                xmi:uuid="c44dcf03-428f-4d3e-9c7a-b5bc04ab0b58" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-SequenceReductionExpression-isOrdered-ownedComment"
                    xmi:uuid="85d0bcf1-542f-49e6-a3c1-8444e0198bf2" xmi:type="uml:Comment">
                    <body>Whether this is an ordered reduction or not.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceReductionExpression-isOrdered"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-SequenceReductionExpression-isOrdered-defaultValue"
                    xmi:uuid="72b93945-ed4e-443f-a76b-744663fc4537" xmi:type="uml:LiteralBoolean"/>
                <name>isOrdered</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceReductionExpression-primary"
                xmi:uuid="9a3708a9-bffc-40cb-8b38-672126eedbd8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceReductionExpression-primary-ownedComment"
                    xmi:uuid="4af64bdd-4a27-4fd8-bdfc-a188e31210d7" xmi:type="uml:Comment">
                    <body>The target class name or primary expression for the reduction.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceReductionExpression-primary"/>
                </ownedComment>
                <name>primary</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceReductionExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceReductionExpression-behaviorName"
                xmi:uuid="7bb73ac6-bccc-49bf-86fa-2e6a8591b826" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceReductionExpression-behaviorName-ownedComment"
                    xmi:uuid="52869ad5-5c5b-4734-bf24-0b91e7ed6d39" xmi:type="uml:Comment">
                    <body>The name of the behavior to be used as the reducer.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceReductionExpression-behaviorName"/>
                </ownedComment>
                <name>behaviorName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_behaviorName_sequenceReductionExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SequenceReductionExpression-updateAssignments"
                xmi:uuid="2ce26b0b-0ff9-4661-b049-7760c8df5fda" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-SequenceReductionExpression-updateAssignments-ownedComment"
                    xmi:uuid="43c31c46-1b74-4853-8449-fc643d86b72d" xmi:type="uml:Comment">
                    <body>The assignments after a sequence reduction expression are the same as after its primary expression.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceReductionExpression-updateAssignments"
                    />
                </ownedComment>
                <ownedParameter xmi:id="Alf-SequenceReductionExpression-updateAssignments-result"
                    xmi:uuid="278d3dc6-6f76-451c-97e8-1b23d27ef48a" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceReductionExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="b0c44ce2-8ff5-44f6-b0b4-0472ed817e45"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceReductionExpression-updateAssignments-result-upperValue"
                        xmi:uuid="ade0243d-0d53-478d-805d-a9db33cc32cb"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SequenceReductionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Tuple" xmi:uuid="a17344eb-d81c-4829-ace8-03b51cd4f9b8"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Tuple-ownedComment"
                xmi:uuid="13e62e4e-86b9-40b7-8d35-9f1d40c8fbc5" xmi:type="uml:Comment">
                <body>A list of expressions used to provide the arguments for an invocation.
</body>
                <annotatedElement xmi:idref="Alf-Tuple"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-Tuple-tupleInputDerivation"
                xmi:uuid="0d83d3b0-7c6f-4cb6-ba65-063d76b5426e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleInputDerivation-specification"
                    xmi:uuid="77d84499-4ea9-489e-b7ac-e8c2fe70fdbe" xmi:type="uml:OpaqueExpression">
                    <body>A tuple has the same number of inputs as its invocation has input parameters. For each input parameter, the tuple has a corresponding input with the same name as the parameter and an expression that is the matching argument from the tuple, or an empty sequence construction expression if there is no matching argument.
</body>
                    <language>English</language>
                </specification>
                <name>tupleInputDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Tuple-tupleOutputDerivation"
                xmi:uuid="13f05763-a7d6-49d5-bfa6-61f86cd744d5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleOutputDerivation-specification"
                    xmi:uuid="e7ceeccf-23e7-4e54-afd9-7f69c8b616b5" xmi:type="uml:OpaqueExpression">
                    <body>A tuple has the same number of outputs as its invocation has output parameters. For each output parameter, the tuple has a corresponding output with the same name as the parameter and an expression that is the matching argument from the tuple, or an empty sequence construction expression if there is no matching argument.
</body>
                    <language>English</language>
                </specification>
                <name>tupleOutputDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Tuple-tupleNullInputs"
                xmi:uuid="c9d24789-d4ad-40a3-ab4a-6ac78d76d968" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleNullInputs-specification"
                    xmi:uuid="92b17645-5567-4de0-8782-a5b7291250ef" xmi:type="uml:OpaqueExpression">
                    <body>An input parameter may only have a null argument if it has a multiplicity lower bound of 0.
</body>
                    <language>English</language>
                </specification>
                <name>tupleNullInputs</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Tuple-tupleOutputs"
                xmi:uuid="9068ce89-7dea-452e-b504-d31c3a876032" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleOutputs-specification"
                    xmi:uuid="78937c46-76fd-4563-8107-3643c1f6ede2" xmi:type="uml:OpaqueExpression">
                    <body>An output parameter may only have a null argument if it is an out parameter.
</body>
                    <language>English</language>
                </specification>
                <name>tupleOutputs</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Tuple-tupleAssignmentsBefore"
                xmi:uuid="77b1b836-8c39-41d0-8d5c-ef6bd2129090" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleAssignmentsBefore-specification"
                    xmi:uuid="6a94d562-37fd-4720-9512-de7a60edd5fa" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before each expression in a tuple are the same as the assignments before the tuple, except in the case of a name expression that defines a new local name, in which case the assigned source for the new name is included in the assignments before the name expression. (Note that the assigned source for a new name is included before the name expression so that the nameExpressionResolution constraint is not violated.) The assignments before the tuple are the same as the assignments after the feature reference of the invocation of the tuple, if the invocation has one, or otherwise the assignments before the invocation.
</body>
                    <language>English</language>
                </specification>
                <name>tupleAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Tuple-tupleAssignmentsAfter"
                xmi:uuid="374a85b8-7e9e-4477-97f0-4c7881197365" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Tuple"/>
                <specification xmi:id="Alf-Tuple-tupleAssignmentsAfter-specification"
                    xmi:uuid="cc8c1f8e-bd70-4018-8717-b93f7e60aaa6" xmi:type="uml:OpaqueExpression">
                    <body>A name may be assigned in at most one argument expression of a tuple.
</body>
                    <language>English</language>
                </specification>
                <name>tupleAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-Tuple-generalization"
                xmi:uuid="0db02b34-e209-4c44-9ed1-1f7aaa9d3195" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Tuple-input" xmi:uuid="f1ca55e2-9e17-4a11-b374-19ed094bed00"
                xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Tuple-input-ownedComment"
                    xmi:uuid="d49381ee-9878-40aa-8115-d4aac3612c4d" xmi:type="uml:Comment">
                    <body>The argument expressions from this tuple, matched to the input parameters (direction in and inout) of the invocation. An empty sequence construction expression is included for any input parameter that is not explicitly matched in the tuple.
</body>
                    <annotatedElement xmi:idref="Alf-Tuple-input"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Tuple-input-lowerValue"
                    xmi:uuid="51154215-5859-4cbc-8fab-62ce3bcd87d3" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Tuple-input-upperValue"
                    xmi:uuid="efb865cc-418f-4d2e-9de8-647a6d402abd"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>input</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-NamedExpression"/>
                <association xmi:idref="Alf-A_input_tuple"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Tuple-invocation"
                xmi:uuid="288fddfa-a5f5-4f03-a633-d42e81fa688f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Tuple-invocation-ownedComment"
                    xmi:uuid="58b4bd69-613e-4237-8f6f-ad2e1ff827a9" xmi:type="uml:Comment">
                    <body>The invocation expression of which this tuple is a part.
</body>
                    <annotatedElement xmi:idref="Alf-Tuple-invocation"/>
                </ownedComment>
                <name>invocation</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InvocationExpression"/>
                <association xmi:idref="Alf-A_tuple_invocation"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Tuple-output"
                xmi:uuid="f4376fdb-6d3a-42ab-b25c-9173bbdaf700" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Tuple-output-ownedComment"
                    xmi:uuid="ffc924cf-aa5e-4b22-9f1e-de1accebedc6" xmi:type="uml:Comment">
                    <body>The argument expressions from this tuple, matched to the output parameters (direction inout and out) of the invocation. An empty sequence construction expression is included for any output parameter that is not explicitly matched in the tuple.
</body>
                    <annotatedElement xmi:idref="Alf-Tuple-output"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Tuple-output-lowerValue"
                    xmi:uuid="7951d4a8-ff07-4db5-8199-85f30e6c5181" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Tuple-output-upperValue"
                    xmi:uuid="97487682-4ef8-4f4f-944e-be5ddb1e66d0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>output</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-OutputNamedExpression"/>
                <association xmi:idref="Alf-A_output_tuple"/>
            </ownedAttribute>
            <name>Tuple</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ArithmeticExpression"
            xmi:uuid="54d16dcc-7f97-41b5-8a5f-5f0bb6155257" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ArithmeticExpression-ownedComment"
                xmi:uuid="0a00b5a2-1d01-41fc-8fb4-08e97c52008b" xmi:type="uml:Comment">
                <body>A binary expression with an arithmetic operator.
</body>
                <annotatedElement xmi:idref="Alf-ArithmeticExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation"
                xmi:uuid="e7c1b584-dc1c-4212-a221-29d9c840cd84" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation-specification"
                    xmi:uuid="8e7058d6-63a8-4155-83f6-a30ac8af9c6f" xmi:type="uml:OpaqueExpression">
                    <body>An arithmetic expression is a string concatenation expression if its type is String.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionIsConcatenationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation"
                xmi:uuid="1e26fb9e-925b-4f7d-9f5e-5e5c6209a826" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation-specification"
                    xmi:uuid="96797547-4ea3-4115-b1c4-00fc0e2a5603" xmi:type="uml:OpaqueExpression">
                    <body>If both operands of an arithmetic expression operator are of a type that conforms to type Integer, then the type of the expression is Integer. If one operand is of a type that conforms to type Real and the other Integer or both are of a type that conforms to type Real, then the type of the expression is Real. If both operands are of a type that conforms to type String, then the type of the expression is String. Otherwise the expression has no type.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation"
                xmi:uuid="4ece247b-3d8f-47fa-9cf5-e42a0fe5076c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation-specification"
                    xmi:uuid="b500ccfd-379b-4b46-bdff-2d984fde2e2e" xmi:type="uml:OpaqueExpression">
                    <body>An arithmetic expression has a multiplicity lower bound of 0 if the operator is / or if the lower bound if either operand expression is 0 and 1 otherwise.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation"
                xmi:uuid="9c6038db-365d-4e93-bc1a-ab776e6d58ec" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation-specification"
                    xmi:uuid="73502fc5-a0c4-4c18-a92b-03ccdc536790" xmi:type="uml:OpaqueExpression">
                    <body>An arithmetic expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes"
                xmi:uuid="478d37bc-745a-4a35-b8da-ce10c185fd5a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes-specification"
                    xmi:uuid="77089aa6-43d4-4716-a2f7-4f0fe61ce628" xmi:type="uml:OpaqueExpression">
                    <body>The operands of an arithmetic expression must both have types that conform to type Integer or Real, unless the operator is + or %. If the operator is +, then both operands may also have types that conform to type String. If the operator is %, then both operands must have types that conform to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionOperandTypes</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealConversion1Derivation"
                xmi:uuid="c332c5c5-2b65-4c7e-b04e-739e644c2d63" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealConversion1Derivation-specification"
                    xmi:uuid="98eeadfa-28e2-4970-98df-140d6ed737da" xmi:type="uml:OpaqueExpression">
                    <body>Real conversion is required if the type of an arithmetic expression is Real and the first operand expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionIsRealConversion1Derivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealConversion2Derivation"
                xmi:uuid="0e48b2ac-f1a5-4292-8ea8-6ea593c41b64" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealConversion2Derivation-specification"
                    xmi:uuid="16e89775-7ddb-42cd-a8a1-02a8d1b55bc6" xmi:type="uml:OpaqueExpression">
                    <body>Real conversion is required if the type of an arithmetic expression is Real and the second operand expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionIsRealConversion2Derivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealDerivation"
                xmi:uuid="ef60cd87-45b5-4ac0-beaf-3d2c872e8442" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsRealDerivation-specification"
                    xmi:uuid="3c641ba3-3af5-4f01-8861-1ab903533339" xmi:type="uml:OpaqueExpression">
                    <body>An arithmetic expression is a real computation if its type conforms to Real.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionIsRealDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandMultiplicity"
                xmi:uuid="9f32576f-ebf2-40a3-bb7d-ac1d57292c9a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
                <specification
                    xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandMultiplicity-specification"
                    xmi:uuid="035b334c-32a7-4204-bdef-f803fabba16f" xmi:type="uml:OpaqueExpression">
                    <body>The operand expressions of an arithmetic expressions must both have multiplicity upper bounds of 1.
</body>
                    <language>English</language>
                </specification>
                <name>arithmeticExpressionOperandMultiplicity</name>
            </ownedRule>
            <generalization xmi:id="Alf-ArithmeticExpression-generalization"
                xmi:uuid="ea3fe16a-919c-42b4-8c5b-7eb94b32cf93" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ArithmeticExpression-isConcatenation"
                xmi:uuid="ff1543db-bd95-4503-8453-04629d727e20" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ArithmeticExpression-isConcatenation-ownedComment"
                    xmi:uuid="d397bdd8-6044-4810-982e-796242d82c6b" xmi:type="uml:Comment">
                    <body>Whether this is a string concatenation expression.
</body>
                    <annotatedElement xmi:idref="Alf-ArithmeticExpression-isConcatenation"/>
                </ownedComment>
                <name>isConcatenation</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ArithmeticExpression-isReal"
                xmi:uuid="e88d2549-27a6-458c-bcc9-a70d8824765e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ArithmeticExpression-isReal-ownedComment"
                    xmi:uuid="be668429-622d-43a7-99aa-0987b60155af" xmi:type="uml:Comment">
                    <body>Whether this is a real arithmetic expression.
</body>
                    <annotatedElement xmi:idref="Alf-ArithmeticExpression-isReal"/>
                </ownedComment>
                <name>isReal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ArithmeticExpression-isRealConversion1"
                xmi:uuid="63d8201e-7aef-413b-9d4c-8ddb8eae7f10" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ArithmeticExpression-isRealConversion1-ownedComment"
                    xmi:uuid="10a6c750-b9c2-481d-934f-c6f60e7a1db5" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the first operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-ArithmeticExpression-isRealConversion1"/>
                </ownedComment>
                <name>isRealConversion1</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ArithmeticExpression-isRealConversion2"
                xmi:uuid="3616dc0d-e862-4e42-b152-653a50315e7c" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ArithmeticExpression-isRealConversion2-ownedComment"
                    xmi:uuid="eb8a50c8-d8dc-48e4-adb1-ff1b6ad77292" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required on the second operand of this expression.
</body>
                    <annotatedElement xmi:idref="Alf-ArithmeticExpression-isRealConversion2"/>
                </ownedComment>
                <name>isRealConversion2</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ArithmeticExpression-minLowerBound"
                xmi:uuid="95a6126d-eb64-41b7-b3f8-9d7805a524c2" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-ArithmeticExpression-minLowerBound-ownedComment"
                    xmi:uuid="7510c683-8872-4111-a0d0-5e4eb49b157c" xmi:type="uml:Comment">
                    <body>The minimum lower bound is 0 for operands of arithmetic expressions other than concatenations (this allows for the propagation of a null returned from a division by zero in an operand).
</body>
                    <annotatedElement xmi:idref="Alf-ArithmeticExpression-minLowerBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ArithmeticExpression-minLowerBound-result"
                    xmi:uuid="5650d536-2b92-45b4-b4ea-4549c9d93518" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>minLowerBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ArithmeticExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SelectOrRejectExpression"
            xmi:uuid="02e93336-d37a-44d4-82fd-5f91b9b582d1" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SelectOrRejectExpression-ownedComment"
                xmi:uuid="0b28120a-1e05-4dfb-99ac-78aa11821462" xmi:type="uml:Comment">
                <body>A sequence expansion expression with a select or reject operation.
</body>
                <annotatedElement xmi:idref="Alf-SelectOrRejectExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation"
                xmi:uuid="8ba98908-3b52-4062-ae10-0f36c62f7618" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
                <specification
                    xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation-specification"
                    xmi:uuid="62b2ff41-52e7-4997-9416-eea1d27718f9" xmi:type="uml:OpaqueExpression">
                    <body>A select or reject expression has the same type as its primary expression.
</body>
                    <language>English</language>
                </specification>
                <name>selectOrRejectExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation"
                xmi:uuid="96b1cc98-d07d-4c9b-b10c-693729392bd8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
                <specification
                    xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation-specification"
                    xmi:uuid="38afb1a8-7bd6-445d-9c17-25e1194f83aa" xmi:type="uml:OpaqueExpression">
                    <body>A select or reject expression has a multiplicity lower bound of 0.
</body>
                    <language>English</language>
                </specification>
                <name>selectOrRejectExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation"
                xmi:uuid="81b5e77f-1156-4235-b8dc-2a87c3ba9eca" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
                <specification
                    xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation-specification"
                    xmi:uuid="15e1cc35-4605-40fe-81e5-2240e95211ff" xmi:type="uml:OpaqueExpression">
                    <body>A select or reject expression has the same multiplicity upper bound as its primary expression.
</body>
                    <language>English</language>
                </specification>
                <name>selectOrRejectExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument"
                xmi:uuid="44b33a9c-dc80-4b43-963c-552e2e35f4a5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
                <specification
                    xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument-specification"
                    xmi:uuid="4325b663-c6f1-4e5e-81fd-b23065014d66" xmi:type="uml:OpaqueExpression">
                    <body>The argument of a select or reject expression must have a type that conforms to type Boolean and a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>selectOrRejectExpressionArgument</name>
            </ownedRule>
            <generalization xmi:id="Alf-SelectOrRejectExpression-generalization"
                xmi:uuid="f2160c99-0323-4d9b-b79b-a3f9c0fae60e" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceExpansionExpression"/>
            </generalization>
            <name>SelectOrRejectExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NamedTuple" xmi:uuid="14b56174-f792-4f57-9689-b3b1628d6916"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NamedTuple-ownedComment"
                xmi:uuid="f9f4db3e-8d52-49ae-bd48-95d8b72afd09" xmi:type="uml:Comment">
                <body>A tuple in which the arguments are matched to parameters by name.
</body>
                <annotatedElement xmi:idref="Alf-NamedTuple"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NamedTuple-namedTupleArgumentNames"
                xmi:uuid="badc8f08-b9ad-41db-8dd3-3b42844e3ee2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamedTuple"/>
                <specification xmi:id="Alf-NamedTuple-namedTupleArgumentNames-specification"
                    xmi:uuid="5108ec22-c9b8-4454-8a6d-ae5be0b90523" xmi:type="uml:OpaqueExpression">
                    <body>The name of a named expression of a named tuple must be the name of a parameter of the invocation the tuple is for. No two named expressions may have the same name.
</body>
                    <language>English</language>
                </specification>
                <name>namedTupleArgumentNames</name>
            </ownedRule>
            <generalization xmi:id="Alf-NamedTuple-generalization"
                xmi:uuid="72e5a8a6-1cd3-424f-9d73-709cb1e6db43" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Tuple"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NamedTuple-namedExpression"
                xmi:uuid="90950b72-dcc2-4ee8-94cf-11e696e16bbf" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamedTuple-namedExpression-ownedComment"
                    xmi:uuid="292fe2ed-1486-4f98-8a20-3a312d16d47f" xmi:type="uml:Comment">
                    <body>The argument expressions for this tuple paired with the corresponding parameter names.
</body>
                    <annotatedElement xmi:idref="Alf-NamedTuple-namedExpression"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NamedTuple-namedExpression-lowerValue"
                    xmi:uuid="714a5f38-9bb9-4263-a4c7-9123a5969316" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-NamedTuple-namedExpression-upperValue"
                    xmi:uuid="64f3f1f5-f754-4914-80b1-83ed87433873"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>namedExpression</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-NamedExpression"/>
                <association xmi:idref="Alf-A_namedExpression_namedTuple"/>
            </ownedAttribute>
            <name>NamedTuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-UnaryExpression"
            xmi:uuid="e2d49477-6c61-412a-8c2a-ef9c5723d831" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-UnaryExpression-ownedComment"
                xmi:uuid="705ec757-5824-407e-9e33-f807d6b94a0a" xmi:type="uml:Comment">
                <body>An expression consisting of an operator acting on a single operand expression.
</body>
                <annotatedElement xmi:idref="Alf-UnaryExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-UnaryExpression-unaryExpressionAssignmentsBefore"
                xmi:uuid="8b98266c-59dc-4da0-bb7c-a0fd6d514da5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnaryExpression"/>
                <specification
                    xmi:id="Alf-UnaryExpression-unaryExpressionAssignmentsBefore-specification"
                    xmi:uuid="5452b528-a6cc-4414-8a0a-a29e71a6673c" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the operand of a unary expression are the same as those before the unary expression.
</body>
                    <language>English</language>
                </specification>
                <name>unaryExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-UnaryExpression-generalization"
                xmi:uuid="c962957d-c419-4e37-ab4e-ad756a364138" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-UnaryExpression-operator"
                xmi:uuid="278b0868-84fc-46b6-aedd-dd9465112400" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-UnaryExpression-operator-ownedComment"
                    xmi:uuid="4dfd2f53-b369-4ca6-9cb0-092014388803" xmi:type="uml:Comment">
                    <body>The symbol representing the operator.
</body>
                    <annotatedElement xmi:idref="Alf-UnaryExpression-operator"/>
                </ownedComment>
                <name>operator</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnaryExpression-operand"
                xmi:uuid="14bb8d46-ff2e-443a-98f9-582c82286a99" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-UnaryExpression-operand-ownedComment"
                    xmi:uuid="babdc641-b783-4a3e-ad10-5366b8ec0d4b" xmi:type="uml:Comment">
                    <body>The expression giving the operand.
</body>
                    <annotatedElement xmi:idref="Alf-UnaryExpression-operand"/>
                </ownedComment>
                <name>operand</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_operand_unaryExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-UnaryExpression-updateAssignments"
                xmi:uuid="886394ea-324b-4608-b5f4-a9734b7ee4ad" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-UnaryExpression-updateAssignments-ownedComment"
                    xmi:uuid="f9e9ba5e-be7a-4ba2-87c6-97443dfb769a" xmi:type="uml:Comment">
                    <body>By default, the assignments after a unary expression are the same as those after its operand expression.
</body>
                    <annotatedElement xmi:idref="Alf-UnaryExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-UnaryExpression-updateAssignments-result"
                    xmi:uuid="a260bb8a-8f74-4be3-8b51-be88ef5e19ef" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-UnaryExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="3ac2412b-a3a2-405b-97d0-7d211c42db16"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-UnaryExpression-updateAssignments-result-upperValue"
                        xmi:uuid="56227a01-74dc-4415-9fcb-2ab5e038b29a"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>UnaryExpression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-FeatureInvocationExpression"
            xmi:uuid="fbd0ea26-68be-46ec-9f2e-d7add479d4e0" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-FeatureInvocationExpression-ownedComment"
                xmi:uuid="639a295b-7ef0-41fd-b444-ab7b7cd304ca" xmi:type="uml:Comment">
                <body>An invocation of a feature referenced on a sequence of instances.
</body>
                <annotatedElement xmi:idref="Alf-FeatureInvocationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation"
                xmi:uuid="3c0df811-30ae-476e-86ff-76222bd66b73" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
                <specification
                    xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation-specification"
                    xmi:uuid="030b91c9-37aa-4f48-8067-ccc0f57e9c3c" xmi:type="uml:OpaqueExpression">
                    <body>If a feature invocation expression is an implicit object destruction, it has no referent. Otherwise, its referent is the operation or signal being invoked.
</body>
                    <language>English</language>
                </specification>
                <name>featureInvocationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation"
                xmi:uuid="3584a6b4-5ecb-4f28-94c1-a271cc9e9e47" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
                <specification
                    xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation-specification"
                    xmi:uuid="ba3b53e9-c643-4dc4-8ae5-19c9b5263135" xmi:type="uml:OpaqueExpression">
                    <body>If a feature invocation expression has an explicit target, then that is its feature. Otherwise, it is an alternative constructor call with its feature determined implicitly.
</body>
                    <language>English</language>
                </specification>
                <name>featureInvocationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists"
                xmi:uuid="c58cd65b-6ed8-42ab-96e6-52e4eeb2dd60" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
                <specification
                    xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists-specification"
                    xmi:uuid="dbf00061-d400-4b70-8a7b-d7593805d04d" xmi:type="uml:OpaqueExpression">
                    <body>If a feature invocation expression is not an implicit destructor call, then it must be possible to determine a single valid referent for it according to the overloading resolution rules.
</body>
                    <language>English</language>
                </specification>
                <name>featureInvocationExpressionReferentExists</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor"
                xmi:uuid="70e7e406-0e6c-4a76-a99c-273e47c0c296" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
                <specification
                    xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor-specification"
                    xmi:uuid="300117d0-4027-4b4e-9875-a8014b9cb882" xmi:type="uml:OpaqueExpression">
                    <body>An alternative constructor invocation may only occur in an expression statement as the first statement in the definition for the method of a constructor operation.
</body>
                    <language>English</language>
                </specification>
                <name>featureInvocationExpressionAlternativeConstructor</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor"
                xmi:uuid="545aa1ef-c60d-4703-8d19-0a5906b766a8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
                <specification
                    xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor-specification"
                    xmi:uuid="1d6c5c07-5b8a-4229-9f78-e0abef39ed93" xmi:type="uml:OpaqueExpression">
                    <body>If there is no target feature expression, then the implicit feature with the same name as the target type must be a constructor.
</body>
                    <language>English</language>
                </specification>
                <name>featureInvocationExpressionImplicitAlternativeConstructor</name>
            </ownedRule>
            <generalization xmi:id="Alf-FeatureInvocationExpression-generalization"
                xmi:uuid="f8e892b8-ec16-4b36-8ba2-45ab2c5e7690" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-FeatureInvocationExpression-target"
                xmi:uuid="d659349b-f026-487a-8286-a3b62d15425a" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-FeatureInvocationExpression-target-ownedComment"
                    xmi:uuid="681da773-90cd-4818-a8b2-c12ed0a98c8e" xmi:type="uml:Comment">
                    <body>A feature reference to the target feature to be invoked.
</body>
                    <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-target"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-FeatureInvocationExpression-target-lowerValue"
                    xmi:uuid="a237bc4c-7453-43b3-b442-b328e49ef621" xmi:type="uml:LiteralInteger"/>
                <name>target</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_target_featureInvocationExpression"/>
            </ownedAttribute>
            <name>FeatureInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-InvocationExpression"
            xmi:uuid="7c347f40-921c-4bd8-967e-1bdbca670f6b" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-InvocationExpression-ownedComment"
                xmi:uuid="330a1813-0232-44c0-81a4-768196f8cb1b" xmi:type="uml:Comment">
                <body>An expression denoting the invocation of a behavior or operation, or the sending of a signal.
</body>
                <annotatedElement xmi:idref="Alf-InvocationExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation"
                xmi:uuid="5442c9d1-bf04-4a95-b98f-e89d615c7b4e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation-specification"
                    xmi:uuid="26d700fd-29cb-47c4-ae60-fa1ca2704155" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is a behavior invocation if its referent is a behavior.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsBehaviorDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation"
                xmi:uuid="4635198b-4a71-45ec-aaef-36ce8a1c082f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation-specification"
                    xmi:uuid="bff53e1c-f1f4-4fec-a2f1-c1a122b2ab1c" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is an association end read if its referent is an association end.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsAssociationEndDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsOperationDerivation"
                xmi:uuid="d6749d89-4c59-496b-be10-5299483e8f18" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsOperationDerivation-specification"
                    xmi:uuid="b4bca481-3453-4f4e-889a-08ca2fd718eb" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is an operation call if its referent is an operation.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsOperationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation"
                xmi:uuid="3b584a17-1671-4581-beae-b23dff05fde0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation-specification"
                    xmi:uuid="87db133b-0367-4992-88f9-38c541b31da8" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is a destructor call either implicitly or if it is an explicit operation call to a destructor operation.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsDestructorDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation"
                xmi:uuid="9a619f3a-0416-4643-87ba-3078ea116961" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation-specification"
                    xmi:uuid="61e6a471-20b3-49d3-bd9f-8abc6cf32725" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is an implicit object destruction if it has a feature with the name "destroy" and no explicit referents.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsImplicitDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsSignalDerivation"
                xmi:uuid="a7b74ae4-4399-41df-808e-f50fdc43d37b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionIsSignalDerivation-specification"
                    xmi:uuid="949795fe-2371-474f-9c70-3021c2ec48a7" xmi:type="uml:OpaqueExpression">
                    <body>An invocation expression is a signal send if its referent is a signal.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionIsSignalDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionParameterDerivation"
                xmi:uuid="d1a79f4f-3ea5-411b-802a-a89ef2773390" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionParameterDerivation-specification"
                    xmi:uuid="d6344828-6fff-43cd-9c7d-45fcd5ffa6a0" xmi:type="uml:OpaqueExpression">
                    <body>The parameters of an invocation expression are given by the result of the parameterElements helper operation.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionParameterDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionTypeDerivation"
                xmi:uuid="ab436711-b0e6-4d06-9945-2791dc1b3ae8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionTypeDerivation-specification"
                    xmi:uuid="511a7931-09a6-4e5e-a174-7fa9d959ecaf" xmi:type="uml:OpaqueExpression">
                    <body>If the (bound) referent of an invocationExpression is an operation or behavior with a return parameter, then the type of the expression is that of the return parameter (if any). If the referent is a classifier, then the type is the referent. If the referent is a property, then the type is that of the property. Otherwise the expression has no type.

</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionUpperDerivation"
                xmi:uuid="00883ff7-fc15-43b0-bef4-35762c53eaa8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionUpperDerivation-specification"
                    xmi:uuid="bb178965-89cc-4e37-8ff5-8feb9331fd9f" xmi:type="uml:OpaqueExpression">
                    <body>If the referent of an invocationExpression is an operation or behavior with a return parameter, then the upper bound of the expression is that of the return parameter. If the referent is a classifier, then the upper bound is 1. If the referent is a property, then the upper bound is that of the property. Otherwise the upper bound is 0.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionLowerDerivation"
                xmi:uuid="e8944846-8e38-4b59-9148-e5c7dec754d7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionLowerDerivation-specification"
                    xmi:uuid="2ebfbe37-48fc-4f64-b4aa-747ba8dbe8e4" xmi:type="uml:OpaqueExpression">
                    <body>If the referent of an invocationExpression is an operation or behavior with a return parameter, then the lower bound of the expression is that of the return parameter. If the referent is a classifier, then the lower bound is 1. If the referent is a property, then the lower bound is that of the property. Otherwise the lower bound is 0.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsBefore"
                xmi:uuid="9118d2ac-e608-49c7-928e-673fccb5ba98" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsBefore-specification"
                    xmi:uuid="bc60c1ec-f8be-4674-b63a-613169d7ee0f" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the target expression of the feature reference of an invocation expression (if any) are the same as the assignments before the invocation expression.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionBoundReferentDerivation"
                xmi:uuid="569e0bec-fe7c-4f5f-8b53-f78844c46e5f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionBoundReferentDerivation-specification"
                    xmi:uuid="27181cdb-badd-45be-951f-f7b2549c6710" xmi:type="uml:OpaqueExpression">
                    <body>If the referent of an invocation expression is a template behavior, then the bound referent is the implicit template binding of this template; otherwise it is the same as the referent. For an implicit template binding, the type arguments of for the template are inferred from the types of the arguments for in and inout parameters of the template behavior. If the resulting implicit template binding would not be a legal binding of the template behavior, then the invocation expression has no bound referent.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionBoundReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionTemplateParameters"
                xmi:uuid="4dd756b5-4b48-49c3-9a53-6fc81d2a17db" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionTemplateParameters-specification"
                    xmi:uuid="5eb11e33-69e9-4c8a-80e7-d3285c8c40aa" xmi:type="uml:OpaqueExpression">
                    <body>If the referent of the invocation expression is a template, then all of its template parameters must be classifier template parameters. Note: This allows for the possibility that the referent is not an Alf unit, in which case it could have non-classifier template parameters.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionTemplateParameters</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsAfter"
                xmi:uuid="b45bd975-0fe7-43d0-8421-5dda4785ca0e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InvocationExpression"/>
                <specification
                    xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsAfter-specification"
                    xmi:uuid="3fcc5de0-5eb2-440e-b522-c5d6d1d1428b" xmi:type="uml:OpaqueExpression">
                    <body>If the invocation is a sequence feature invocation, then the assignments after the tuple of the invocation expression must be the same as the assignments before.
</body>
                    <language>English</language>
                </specification>
                <name>invocationExpressionAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-InvocationExpression-generalization"
                xmi:uuid="254d8b90-221f-4357-983e-bf301f79dbc2" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isBehavior"
                xmi:uuid="a0731508-0017-4115-bea4-546063074fbf" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isBehavior-ownedComment"
                    xmi:uuid="912f48f7-c998-44a3-b49e-db17a1095e80" xmi:type="uml:Comment">
                    <body>Whether this is a behavior invocation or not.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isBehavior"/>
                </ownedComment>
                <name>isBehavior</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isAssociationEnd"
                xmi:uuid="4ad2ad95-34a4-471b-8c94-a0877f07815d" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isAssociationEnd-ownedComment"
                    xmi:uuid="8b694659-e401-4ac9-9b7b-9b80b7e6a6af" xmi:type="uml:Comment">
                    <body>Whether this is an association read or not.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isAssociationEnd"/>
                </ownedComment>
                <name>isAssociationEnd</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-feature"
                xmi:uuid="0de92096-70e6-4642-a247-966b9c9c8511" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InvocationExpression-feature-ownedComment"
                    xmi:uuid="536e8236-048e-486b-8c63-8e03bea21bd5" xmi:type="uml:Comment">
                    <body>For an invocation of a feature, the reference to that feature. This property is set for a feature invocation expression or for an expression initially parsed as a behavior invocation expression that disambiguates to a feature invocation expression.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-feature"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-InvocationExpression-feature-lowerValue"
                    xmi:uuid="753621eb-391b-4715-b0f6-5e5626e1b6fd" xmi:type="uml:LiteralInteger"/>
                <name>feature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_feature_invocationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-tuple"
                xmi:uuid="9b24a3cf-1140-43ee-816d-7b730845d78e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InvocationExpression-tuple-ownedComment"
                    xmi:uuid="b3964376-4b23-4c4d-8c8e-f86497e071b5" xmi:type="uml:Comment">
                    <body>The tuple for the invocation expression.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-tuple"/>
                </ownedComment>
                <name>tuple</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Tuple"/>
                <association xmi:idref="Alf-A_tuple_invocation"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isOperation"
                xmi:uuid="c2425470-82ad-46af-9af5-4f55c70c8317" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isOperation-ownedComment"
                    xmi:uuid="57a8b41e-d3ac-4c97-a220-3306b496fecb" xmi:type="uml:Comment">
                    <body>Whether this is an operation call or not.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isOperation"/>
                </ownedComment>
                <name>isOperation</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isDestructor"
                xmi:uuid="1dda1f23-b5c4-4955-a767-674a9c6324a8" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isDestructor-ownedComment"
                    xmi:uuid="1aee0fb4-ced8-4dcb-92ab-8decff1964e7" xmi:type="uml:Comment">
                    <body>If this is an operation call, whether the operation is a destructor.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isDestructor"/>
                </ownedComment>
                <name>isDestructor</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isImplicit"
                xmi:uuid="083a7bfd-1876-4ad7-84c9-72054dd689db" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isImplicit-ownedComment"
                    xmi:uuid="70a14227-67eb-436b-808c-71cb6b8a810f" xmi:type="uml:Comment">
                    <body>Whether this is an implicit object destruction.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isImplicit"/>
                </ownedComment>
                <name>isImplicit</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-referent"
                xmi:uuid="3e4c5ea4-30ee-43c6-803e-76dd84813135" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InvocationExpression-referent-ownedComment"
                    xmi:uuid="d6fedd0f-0c50-4b39-a7ef-4ebf1c4709bd" xmi:type="uml:Comment">
                    <body>The behavior, operation or signal being invoked. The derivation of this property is specific to each kind of invocation expression.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-referent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-InvocationExpression-referent-lowerValue"
                    xmi:uuid="37b2b129-0873-4326-977f-083d6f77f247" xmi:type="uml:LiteralInteger"/>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_invocationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-parameter"
                xmi:uuid="87e336b0-1d6b-4fd8-8884-feb873eefb61" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InvocationExpression-parameter-ownedComment"
                    xmi:uuid="231e2b28-772e-4fcf-8dd4-c6216a66bfa5" xmi:type="uml:Comment">
                    <body>Element references to the parameters of the referent, in order.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-parameter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-InvocationExpression-parameter-lowerValue"
                    xmi:uuid="99138160-f223-47e8-9172-c1019fe3ccf3" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-InvocationExpression-parameter-upperValue"
                    xmi:uuid="2f6dbac1-a2e6-4037-8dc3-d78773f85bde"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>parameter</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_parameter_invocationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-isSignal"
                xmi:uuid="1c6756f7-2ca6-4f44-acda-7b62203374f7" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InvocationExpression-isSignal-ownedComment"
                    xmi:uuid="037f9759-1fc9-4c93-81f4-8addefaa2764" xmi:type="uml:Comment">
                    <body>Whether this is a signal send or not.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-isSignal"/>
                </ownedComment>
                <name>isSignal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InvocationExpression-boundReferent"
                xmi:uuid="e1ae93f8-5c39-463f-8816-976b387b6c3e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InvocationExpression-boundReferent-ownedComment"
                    xmi:uuid="6d3ac165-a610-42c1-88b0-1f37c046a526" xmi:type="uml:Comment">
                    <body>If the referent of the invocation expression is a template behavior, then the implicit bound element for the referent, otherwise the same as the referent.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-boundReferent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-InvocationExpression-boundReferent-lowerValue"
                    xmi:uuid="f6e77d68-00a0-457c-9c9b-1befd2f4e643" xmi:type="uml:LiteralInteger"/>
                <name>boundReferent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_boundReferent_invocationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-InvocationExpression-parameterElements"
                xmi:uuid="c6f0ade2-4bbe-42c3-be7f-5fe015805ee3" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-InvocationExpression-parameterElements-ownedComment"
                    xmi:uuid="50914252-a178-46c2-8a55-ee3bef60483e" xmi:type="uml:Comment">
                    <body>Returns references to the elements that act as the parameters of the referent. If the (bound) referent is a behavior or operation, these are the owned parameters, in order. If the referent is an association end, then the parameters are the other association ends of the association of the referent end, which are treated as if they were in parameters. Otherwise (by default), they are any properties of the referent (e.g., signal attributes), which are treated as if they were in parameters. (This is defined as a helper operation, so that it can be overridden by subclasses of InvocationExpression, if necessary.)
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-parameterElements"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-InvocationExpression-parameterElements-result"
                    xmi:uuid="8f2f4117-2774-43f6-86c1-c75d4565afcb" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-InvocationExpression-parameterElements-result-lowerValue"
                        xmi:uuid="f3f9a984-3082-4322-b0c0-e715e2e1e91f"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-InvocationExpression-parameterElements-result-upperValue"
                        xmi:uuid="b51f1925-0d4a-4c75-829e-f04ef4336ad4"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <isOrdered>true</isOrdered>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>parameterElements</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-InvocationExpression-updateAssignments"
                xmi:uuid="779b5f89-4d06-426f-a1d5-b596ee28a5a7" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-InvocationExpression-updateAssignments-ownedComment"
                    xmi:uuid="c1f2c33e-9802-458a-97d9-84cc5c6bbe78" xmi:type="uml:Comment">
                    <body>The assignments after an invocation expression are the same as those after the tuple of the expression.
</body>
                    <annotatedElement xmi:idref="Alf-InvocationExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-InvocationExpression-updateAssignments-result"
                    xmi:uuid="c02ce5a4-c138-47ff-af4c-914068c65ac6" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-InvocationExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="b71d551a-1470-4d49-b9f6-b599bee228cf"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-InvocationExpression-updateAssignments-result-upperValue"
                        xmi:uuid="bb4c73d1-484b-4b42-8e77-f59e804651e2"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>InvocationExpression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ConditionalLogicalExpression"
            xmi:uuid="c98d1a02-da47-458f-8faf-98c470b2bdeb" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ConditionalLogicalExpression-ownedComment"
                xmi:uuid="67635e6b-e595-4b9d-b201-94ee2d15f9e2" xmi:type="uml:Comment">
                <body>A binary expression with a conditional logical expression, for which the evaluation of the second operand expression is conditioned on the result of evaluating the first operand expression.
</body>
                <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation"
                xmi:uuid="eff5bd5c-6166-4bce-bdc3-dcef4813c91c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
                <specification
                    xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation-specification"
                    xmi:uuid="91245c68-e078-4921-8405-c49034c50c4b" xmi:type="uml:OpaqueExpression">
                    <body>A conditional logical expression has type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalLogicalExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLowerDerivation"
                xmi:uuid="af196e57-668e-4439-97bc-7c01e5074f21" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
                <specification
                    xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLowerDerivation-specification"
                    xmi:uuid="0a1c9fbc-d529-42fc-bc16-5222ad3000e1" xmi:type="uml:OpaqueExpression">
                    <body>A conditional logical expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalLogicalExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpperDerivation"
                xmi:uuid="551d1599-920f-4c3f-9f9d-055d2a0d95ed" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
                <specification
                    xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpperDerivation-specification"
                    xmi:uuid="a78f7482-4c79-45f8-9876-05991443827b" xmi:type="uml:OpaqueExpression">
                    <body>A conditional logical expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalLogicalExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands"
                xmi:uuid="2b7eba6e-a742-4327-8dc8-4a10d36bb598" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
                <specification
                    xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands-specification"
                    xmi:uuid="fafe3533-3fec-467b-a0db-1ae902efaffe" xmi:type="uml:OpaqueExpression">
                    <body>The operands of a conditional logical expression must have a type that conforms to type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalLogicalExpressionOperands</name>
            </ownedRule>
            <generalization xmi:id="Alf-ConditionalLogicalExpression-generalization"
                xmi:uuid="a7c2859a-82d7-404d-b7ee-51f5dba881e6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedOperation xmi:id="Alf-ConditionalLogicalExpression-validateAssignments"
                xmi:uuid="bc24268c-a361-4e92-b35b-ea2b920691ab" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-BinaryExpression-validateAssignments"/>
                <ownedComment
                    xmi:id="Alf-ConditionalLogicalExpression-validateAssignments-ownedComment"
                    xmi:uuid="c710380e-7b7e-4b78-8414-67a99184e54a" xmi:type="uml:Comment">
                    <body>The assignments before the first operand expression of a conditional logical expression are the same as those before the conditional logical expression. The assignments before the second operand expression are the same as those after the first operand expression, adjusted for known nulls and non-nulls based on the first operand expression being true, for a conditional-and expression, or false, for a conditional-or expression.
</body>
                    <annotatedElement
                        xmi:idref="Alf-ConditionalLogicalExpression-validateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ConditionalLogicalExpression-validateAssignments-result"
                    xmi:uuid="6234dacc-118c-4e81-a961-3dc3dba2e55d" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>validateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ConditionalLogicalExpression-updateAssignments"
                xmi:uuid="83a0808f-cd8c-4719-8feb-5b82f2e72087" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-BinaryExpression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-ownedComment"
                    xmi:uuid="0fbd1891-453f-4642-bc5a-00dee7020e35" xmi:type="uml:Comment">
                    <body>If a name has the same assigned source after the second operand expression as before it, then that is its assigned source after the conditional logical expression. Otherwise its assigned source after the conditional logical expression is the conditional logical expression itself. If a name is unassigned before the second operand expression but assigned after it, then it has a multiplicity lower bound of 0 after the conditional logical expression.
</body>
                    <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-updateAssignments"
                    />
                </ownedComment>
                <ownedParameter xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-result"
                    xmi:uuid="e101828a-564b-40f3-8d20-f639815446ca" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="7dd98964-50ae-4bcf-9d6e-208b9a2f903a"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-result-upperValue"
                        xmi:uuid="021ce055-662c-4bef-9f68-9485fc60f6f3"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ConditionalLogicalExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SuperInvocationExpression"
            xmi:uuid="8fbf9a91-9197-4a62-a758-b720000eca98" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SuperInvocationExpression-ownedComment"
                xmi:uuid="569c75fa-77cc-4830-994a-9aee84da044a" xmi:type="uml:Comment">
                <body>An invocation expression used to invoke an operation of a superclass.
</body>
                <annotatedElement xmi:idref="Alf-SuperInvocationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation"
                xmi:uuid="f25b1caa-2904-48aa-8936-c1b7d673d90f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation-specification"
                    xmi:uuid="fb116cd2-6b9e-4d42-8d70-165da7fc4a1f" xmi:type="uml:OpaqueExpression">
                    <body>The referent of a super invocation expression is the method behavior of the operation identified using the overloading resolution rules.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation"
                xmi:uuid="6ad44aed-8d9e-444c-bf33-cf21709fa9c9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation-specification"
                    xmi:uuid="93bb6c7f-07c4-4640-a0d1-eedf62fa113d" xmi:type="uml:OpaqueExpression">
                    <body>There is no feature for a super invocation.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionQualification"
                xmi:uuid="5ce75e58-7821-4b83-8859-037dba82c39e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionQualification-specification"
                    xmi:uuid="c804a9a5-7d69-410c-897b-76ae2542fa2b" xmi:type="uml:OpaqueExpression">
                    <body>If the target has a qualification, then this must resolve to one of the superclasses of the current context class.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionQualification</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget"
                xmi:uuid="dca5057c-46b4-4edf-a17a-9a47e12b360c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget-specification"
                    xmi:uuid="57707013-84c3-4b55-8baa-54e6bc229831" xmi:type="uml:OpaqueExpression">
                    <body>If the target is empty, the referent must be the method for a constructor operation and the context class for the behavior containing the super invocation expression must have exactly one superclass.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionImplicitTarget</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall"
                xmi:uuid="a99d54ba-e340-4d6f-9953-0237ec445e6b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall-specification"
                    xmi:uuid="cd7cf059-7a83-4ec2-a84a-4e5d9981a820" xmi:type="uml:OpaqueExpression">
                    <body>If the referent is the method of a constructor operation, the super invocation expression must occur in an expression statement at the start of the definition for the method of a constructor operation, such that any statements preceding it are also super constructor invocations.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionConstructorCall</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall"
                xmi:uuid="4c8aa9dc-d9fe-4f97-8034-482a9c1e36fd" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall-specification"
                    xmi:uuid="4b591ad6-bfc3-4e02-9295-4093c16ad040" xmi:type="uml:OpaqueExpression">
                    <body>If the referent is the method of a destructor operation, the super invocation expression must occur in an within the method of a destructor operation.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionDestructorCall</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionOperation"
                xmi:uuid="e24f0fb3-e7aa-4767-87fd-4b247d7ee3c5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
                <specification
                    xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionOperation-specification"
                    xmi:uuid="c49c4fed-02f2-42ba-9530-ec82e13d0ec1" xmi:type="uml:OpaqueExpression">
                    <body>It must be possible to identify a single valid operation denoted by the target of a super invocation expression that satisfies the overloading resolution rules.
</body>
                    <language>English</language>
                </specification>
                <name>superInvocationExpressionOperation</name>
            </ownedRule>
            <generalization xmi:id="Alf-SuperInvocationExpression-generalization"
                xmi:uuid="92f076d1-dffd-4ba4-a72c-20d0cd1ae3ae" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SuperInvocationExpression-target"
                xmi:uuid="62fa25b7-9922-4511-9085-d1bd56099469" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SuperInvocationExpression-target-ownedComment"
                    xmi:uuid="5cc59e3f-813c-4d1e-92ec-226cca884649" xmi:type="uml:Comment">
                    <body>The name of the operation to be invoked, optionally qualified with the name of the appropriate superclass.
</body>
                    <annotatedElement xmi:idref="Alf-SuperInvocationExpression-target"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SuperInvocationExpression-target-lowerValue"
                    xmi:uuid="09030773-16f6-4826-88c4-0d697f2bdd77" xmi:type="uml:LiteralInteger"/>
                <name>target</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_target_superInvocationExpression"/>
            </ownedAttribute>
            <name>SuperInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-IsUniqueExpression"
            xmi:uuid="a9bd4e5d-d805-4721-b74f-c597e51907d3" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-IsUniqueExpression-ownedComment"
                xmi:uuid="8bdbb2f3-37f7-4932-8e6b-c59946b566aa" xmi:type="uml:Comment">
                <body>A sequence expansion expression with a isUnique.
</body>
                <annotatedElement xmi:idref="Alf-IsUniqueExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation"
                xmi:uuid="2ad8a9cf-2197-4596-92c4-cd3611ad14eb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
                <specification
                    xmi:id="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation-specification"
                    xmi:uuid="bf999bb5-6d8b-4bb1-b664-569b16ba3304" xmi:type="uml:OpaqueExpression">
                    <body>An isUnique expression has the type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>isUniqueExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation"
                xmi:uuid="9fb3f3d3-fb91-4821-8d3b-030c19b0712c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
                <specification
                    xmi:id="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation-specification"
                    xmi:uuid="c50d098a-6831-464b-8d6a-a920a264bf43" xmi:type="uml:OpaqueExpression">
                    <body>An isUnique expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>isUniqueExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation"
                xmi:uuid="e69f8b69-dc21-4137-843d-5723ac7346c6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
                <specification
                    xmi:id="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation-specification"
                    xmi:uuid="812a60f7-6713-404b-a4e2-db332fee00a2" xmi:type="uml:OpaqueExpression">
                    <body>An isUnique expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>isUniqueExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument"
                xmi:uuid="b151ae27-f28a-499e-82da-c44aba920162" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
                <specification
                    xmi:id="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument-specification"
                    xmi:uuid="4d00f343-b6ef-444f-88f4-4c16fc7bfc55" xmi:type="uml:OpaqueExpression">
                    <body>The argument of an isUnique expression must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>isUniqueExpressionExpressionArgument</name>
            </ownedRule>
            <generalization xmi:id="Alf-IsUniqueExpression-generalization"
                xmi:uuid="423413bd-32a0-4c76-84be-e6a06c413f0b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceExpansionExpression"/>
            </generalization>
            <name>IsUniqueExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ExtentOrExpression"
            xmi:uuid="61a066ee-6684-4789-a9ab-1ee82a1afff1" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ExtentOrExpression-ownedComment"
                xmi:uuid="a56adf95-927b-4b6e-b265-4aa6e68cdc37" xmi:type="uml:Comment">
                <body>The target of a sequence operation, reduction or expansion expression, which may be either a primary expression or a class name denoting the class extent.
</body>
                <annotatedElement xmi:idref="Alf-ExtentOrExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation"
                xmi:uuid="02b01961-8ff3-405b-a086-2e0f902e7a02" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ExtentOrExpression"/>
                <specification
                    xmi:id="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation-specification"
                    xmi:uuid="0ed8d952-6167-408a-bbc3-77e146392d13" xmi:type="uml:OpaqueExpression">
                    <body>The effective expression for the target is the parsed primary expression, if the target is not a qualified name, a name expression, if the target is a qualified name other than a class name, or a class extent expression, if the target is the qualified name of a class.
</body>
                    <language>English</language>
                </specification>
                <name>extentOrExpressionExpressionDerivation</name>
            </ownedRule>
            <ownedAttribute xmi:id="Alf-ExtentOrExpression-name"
                xmi:uuid="76a0d703-2d0e-412a-9143-c64b9a10f84a" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ExtentOrExpression-name-ownedComment"
                    xmi:uuid="e1e4923f-cdfd-47a3-9929-382ec9064354" xmi:type="uml:Comment">
                    <body>If the target is a qualified name, then that name, before it is disambiguated into either a name expression or a class name.
</body>
                    <annotatedElement xmi:idref="Alf-ExtentOrExpression-name"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ExtentOrExpression-name-lowerValue"
                    xmi:uuid="6be60a21-899a-4cbf-95ad-e45c0492c48a" xmi:type="uml:LiteralInteger"/>
                <name>name</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_name_extentOrExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ExtentOrExpression-expression"
                xmi:uuid="b10ea153-4d27-426a-b71e-436154c3e055" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ExtentOrExpression-expression-ownedComment"
                    xmi:uuid="6d5608c2-9833-406a-a304-b67a53f27688" xmi:type="uml:Comment">
                    <body>The effective expression for the target.
</body>
                    <annotatedElement xmi:idref="Alf-ExtentOrExpression-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_extentOrExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ExtentOrExpression-nonNameExpression"
                xmi:uuid="c5de1ad0-1a2e-44c1-aebf-5938b86dc2a0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ExtentOrExpression-nonNameExpression-ownedComment"
                    xmi:uuid="a3b0de0a-f45d-4b5c-85e0-5d5b4b1de59c" xmi:type="uml:Comment">
                    <body>The target primary expression, if it is not a qualified name.
</body>
                    <annotatedElement xmi:idref="Alf-ExtentOrExpression-nonNameExpression"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ExtentOrExpression-nonNameExpression-lowerValue"
                    xmi:uuid="e6b26fb1-cdf3-41a7-9ac6-32b64546d5be" xmi:type="uml:LiteralInteger"/>
                <name>nonNameExpression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_nonNameExpression_extentOrExpression"/>
            </ownedAttribute>
            <name>ExtentOrExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-CollectOrIterateExpression"
            xmi:uuid="87597f32-bf0c-4a92-a901-8d5fc8410709" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-CollectOrIterateExpression-ownedComment"
                xmi:uuid="70f37381-9416-4140-8d00-f49ba084edef" xmi:type="uml:Comment">
                <body>A sequence expansion expression with a collect or iterate operation.
</body>
                <annotatedElement xmi:idref="Alf-CollectOrIterateExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation"
                xmi:uuid="ce1332cc-f69a-403c-9421-a5d1164c9d39" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
                <specification
                    xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation-specification"
                    xmi:uuid="3986b000-0bee-4e1b-b65b-f80662ecbbcc" xmi:type="uml:OpaqueExpression">
                    <body>A collect or iterate expression has the same type as its argument expression.
</body>
                    <language>English</language>
                </specification>
                <name>collectOrIterateExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation"
                xmi:uuid="af268277-7754-40b8-9b05-99d75834adb6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
                <specification
                    xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation-specification"
                    xmi:uuid="dc9dfd8d-c9ef-4103-aba5-fe16bc6087a0" xmi:type="uml:OpaqueExpression">
                    <body>A collect or iterate expression has a multiplicity lower bound that is the product of the bounds of its primary and argument expressions.
</body>
                    <language>English</language>
                </specification>
                <name>collectOrIterateExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation"
                xmi:uuid="5d32e76c-d406-499d-b1c2-d700c0232ba5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
                <specification
                    xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation-specification"
                    xmi:uuid="264bf9f7-0db4-4c88-9380-255a7c362d6f" xmi:type="uml:OpaqueExpression">
                    <body>A collect or iterate expression has a multiplicity upper bound that is the product of the bounds of its primary and argument expressions.
</body>
                    <language>English</language>
                </specification>
                <name>collectOrIterateExpressionUpperDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-CollectOrIterateExpression-generalization"
                xmi:uuid="fe06165c-160b-4025-aad9-7ba4d57d0758" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SequenceExpansionExpression"/>
            </generalization>
            <name>CollectOrIterateExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-BooleanUnaryExpression"
            xmi:uuid="9fb1ac3c-9939-47d3-9976-e44437c5a824" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BooleanUnaryExpression-ownedComment"
                xmi:uuid="fffe078e-5718-42f0-9f22-980d9bcb359d" xmi:type="uml:Comment">
                <body>A unary expression with a Boolean operator.
</body>
                <annotatedElement xmi:idref="Alf-BooleanUnaryExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation"
                xmi:uuid="210ff468-1b52-41ab-9024-eede7d75bb18" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
                <specification
                    xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation-specification"
                    xmi:uuid="3eebf313-b63c-43ff-8b89-fc451970eb10" xmi:type="uml:OpaqueExpression">
                    <body>A Boolean unary expression has type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>booleanUnaryExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation"
                xmi:uuid="cf2aef95-243f-4da9-876d-8c389c831a93" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
                <specification
                    xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation-specification"
                    xmi:uuid="42c519d5-fd0c-4796-8054-e6e511ea99b7" xmi:type="uml:OpaqueExpression">
                    <body>A Boolean unary expression has the same multiplicity lower bound as its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>booleanUnaryExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation"
                xmi:uuid="2b673c66-f195-4c45-9229-7101119edfa9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
                <specification
                    xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation-specification"
                    xmi:uuid="f6e9954e-5074-481a-b505-6b66a7545008" xmi:type="uml:OpaqueExpression">
                    <body>A Boolean unary expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>booleanUnaryExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand"
                xmi:uuid="b4b92668-abc7-4d5e-aad3-57959cf15761" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
                <specification
                    xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand-specification"
                    xmi:uuid="485f0780-19d2-4a23-802d-b665f89df674" xmi:type="uml:OpaqueExpression">
                    <body>The operand expression of a Boolean unary expression must have a type that conforms to type Boolean and a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>booleanUnaryExpressionOperand</name>
            </ownedRule>
            <generalization xmi:id="Alf-BooleanUnaryExpression-generalization"
                xmi:uuid="37ab5d9a-909d-4da4-98f1-613697681c7b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-UnaryExpression"/>
            </generalization>
            <ownedOperation xmi:id="Alf-BooleanUnaryExpression-adjustAssignments"
                xmi:uuid="3af880ec-e133-4dc8-ad11-26f90df4e37f" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-ownedComment"
                    xmi:uuid="19eee009-cba8-4e1b-95d9-26086878d87b" xmi:type="uml:Comment">
                    <body>If the expression is a negation, then check the operand expression for known nulls and non-nulls based on the negation of the given truth condition.
</body>
                    <annotatedElement xmi:idref="Alf-BooleanUnaryExpression-adjustAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-assignments"
                    xmi:uuid="a0c50860-69d4-4f5e-b8e7-cb67db664942" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="3449d3bf-1824-4e91-8809-1caf96514fa4"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="b64b68ce-4dc6-4388-9fa7-a23951610034"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-condition"
                    xmi:uuid="b48dbb34-71be-44f3-9a86-308fc22440dd" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-result"
                    xmi:uuid="5f138798-cba7-4d2c-b2cb-b2384cc89b1b" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-result-lowerValue"
                        xmi:uuid="d4bc9d94-0160-43e0-9c28-12c92df8cfb6"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-BooleanUnaryExpression-adjustAssignments-result-upperValue"
                        xmi:uuid="c1e9a9b2-c64b-4ac4-b6e1-a1c452b0e5d6"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>BooleanUnaryExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-AssignmentExpression"
            xmi:uuid="4c6cfc3c-36c5-4b81-8482-358f5d7a861f" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-AssignmentExpression-ownedComment"
                xmi:uuid="da4cf217-510a-4412-97e9-449ec8fad1f7" xmi:type="uml:Comment">
                <body>An expression used to assign a value to a local name, parameter or property.
</body>
                <annotatedElement xmi:idref="Alf-AssignmentExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation"
                xmi:uuid="90d220cc-5ae3-4126-930e-958ae5edf312" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation-specification"
                    xmi:uuid="217c753c-857c-4038-ba81-1c690eef68aa" xmi:type="uml:OpaqueExpression">
                    <body>An assignment expression is a simple assignment if the assignment operator is "=".
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsSimpleDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation"
                xmi:uuid="85b13255-11bc-4573-a1eb-68f25156b64f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation-specification"
                    xmi:uuid="795ae48a-4f64-4c24-8fed-bcbee0c52a5d" xmi:type="uml:OpaqueExpression">
                    <body>An assignment expression is an arithmetic assignment if its operator is a compound assignment operator for an arithmetic operation.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsArithmeticDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation"
                xmi:uuid="48f1474f-b62b-453b-99a2-75b5b58e3f1a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation-specification"
                    xmi:uuid="d828f0f9-95d3-4dd3-9ea0-5f47aadad632" xmi:type="uml:OpaqueExpression">
                    <body>An assignment expression is a definition if it is a simple assignment and its left hand side is a local name for which there is no assignment before the expression.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsDefinitionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation"
                xmi:uuid="6169133b-f032-4d92-a06c-412ccf869d78" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation-specification"
                    xmi:uuid="ee129fa5-f768-433c-99c6-49da7c406ffc" xmi:type="uml:OpaqueExpression">
                    <body>The left hand side of an assignment expression is a feature if it is a feature left-hand side or a name left-hand side for a name that disambiguates to a feature.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation"
                xmi:uuid="8cd012f7-4c43-4ec3-ace6-0989c8789e23" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation-specification"
                    xmi:uuid="84a6883c-8acc-4c4f-8577-f59062739f21" xmi:type="uml:OpaqueExpression">
                    <body>The left hand side of an assignment expression is indexed if it has an index.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsIndexedDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation"
                xmi:uuid="922950a8-757d-46d1-9aa0-6f16f6420591" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation-specification"
                    xmi:uuid="1a1c8e2c-726f-4a7d-9147-e42825957a06" xmi:type="uml:OpaqueExpression">
                    <body>An assignment expression is a data value update if its left hand side is an attribute of a data value held in a local name or parameter.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsDataValueUpdateDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation"
                xmi:uuid="0beadf2b-a1ed-42b5-a86e-f930dc02f029" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation-specification"
                    xmi:uuid="0bc925dc-2ad7-4e26-84b4-bbbeb72415c6" xmi:type="uml:OpaqueExpression">
                    <body>he new assigned source for an assignment to a local name is the assignment expression (including a data value update). If the assignment is a definition, then the type is given by the right-side, otherwise the type is the same as for the previous assigned source for the local name. The multiplicity lower bound is 0 if the lower bound of the right-hand side is 0 and otherwise 1, and the multiplicity upper bound is 1 if the upper bound of the right-hand side is 1 and * otherwise, except that: if the left-hand side is a data-value update, the multiplicity is the same as for the previous assignment, and, if the left-hand side is indexed (but not a data-value update), the multiplicity is [0..*]. If the assignment expression does not require any conversions, then the subtype of the assignment is the type of the right-hand side expression; otherwise it is null.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionAssignmentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation"
                xmi:uuid="d03761bc-8cb6-4908-9073-f8c4f19d9f9f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation-specification"
                    xmi:uuid="a1d64364-a3ea-4ab5-b811-0d14f7bee32c" xmi:type="uml:OpaqueExpression">
                    <body>If the left-hand side of an assignment expression is a feature, then the feature of the assignment is the referent of the left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation"
                xmi:uuid="a9510ad6-b158-4a68-8721-73eceef73a71" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation-specification"
                    xmi:uuid="e0d5f03f-4c93-46bd-8f77-524a061df1bc" xmi:type="uml:OpaqueExpression">
                    <body>For a compound assignment, the effective expression is the left-hand side treated as a name expression, property access expression or sequence access expression, as appropriate for evaluation to obtain the original value to be updated.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionExpressionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionTypeDerivation"
                xmi:uuid="eb905628-bafc-4797-a5d4-0a3a5ac41c84" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionTypeDerivation-specification"
                    xmi:uuid="4182ff49-0ce9-4aa0-8af8-39b2fc9f418d" xmi:type="uml:OpaqueExpression">
                    <body>A simple assignment expression has the same type as its right-hand side expression. A compound assignment expression has the same type as its left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionUpperDerivation"
                xmi:uuid="77f796e2-b957-4f0e-b660-bee8c99c7b8f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionUpperDerivation-specification"
                    xmi:uuid="5388ccb2-f093-40fa-a5b3-23c91ff42f22" xmi:type="uml:OpaqueExpression">
                    <body>An assignment expression has the same multiplicity upper bound as its right-hand side expression.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionLowerDerivation"
                xmi:uuid="8672aafa-613f-4e4d-820e-a3af1f536ab1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionLowerDerivation-specification"
                    xmi:uuid="4d6921c8-a425-40b3-9dd5-38da07b91e13" xmi:type="uml:OpaqueExpression">
                    <body>A simple assignment expression has the same multiplicity lower bound as its right-hand side expression. A compound assignment expression has the same multiplicity as its left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance"
                xmi:uuid="e367abcf-7f9e-44a1-a741-2c68af00e661" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance-specification"
                    xmi:uuid="a05c99f7-5f6d-4f11-8f98-85974aeb8b2a" xmi:type="uml:OpaqueExpression">
                    <body>If the left-hand side of a simple assignment is not a new local name, and the right-hand side is not null, then either the left-hand side must be untyped or the right-hand side expression must have a type that conforms to the type of the left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionSimpleAssignmentTypeConformance</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance"
                xmi:uuid="40aa9946-c06c-4571-9e58-3ebe0c728db1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance-specification"
                    xmi:uuid="1e81c2b3-7450-4196-86fc-efac26ca162f" xmi:type="uml:OpaqueExpression">
                    <body>If the left-hand side of a simple assignment is not a local name and the multiplicity lower bound of the left-hand side is greater than 0, then the multiplicity lower bound of the right-hand side cannot be 0. If the left-hand side is not a new local name and the multiplicity upper bound of the left-hand side is less than or equal to 1, then the multiplicity upper bound of the right-hand side cannot be greater than that of the left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionSimpleAssignmentMultiplicityConformance</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance"
                xmi:uuid="64afe8c0-37ca-4040-ba34-7aa6858b115f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance-specification"
                    xmi:uuid="83673e68-aaf8-4b5e-a6ab-682e1483592c" xmi:type="uml:OpaqueExpression">
                    <body>For a compound assignment, if the operator is an arithmetic operator, then either the left-hand side and the right-hand side both have types that conform to type Integer, the left-hand side has a type that conforms to type Real and the right-hand side has a type that conformst to type Integer or Real, or they both have a type that conforms to type String and the operator is +. If the operator is a logical operator, then either the left-hand side and the right-hand side both have types that conform to type Boolean or Bit String or the left-hand side has a type that conforms to type Bit String and the right-hand side has a type that conforms to type Integer. If the operator is a shift operator, then the left-hand side must have a type that conforms to type Bit String and the right-hand side must have a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionCompoundAssignmentTypeConformance</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance"
                xmi:uuid="3df8e055-fcb5-4438-8abb-52fe64bab0c9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance-specification"
                    xmi:uuid="557dae69-ae4e-4c5a-8f83-6f9a09ae1c57" xmi:type="uml:OpaqueExpression">
                    <body>For a compound assignment, both the left-hand and right-hand sides must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionCompoundAssignmentMultiplicityConformance</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore"
                xmi:uuid="99d89d89-2146-4268-bcfe-c407534e8988" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore-specification"
                    xmi:uuid="61af0505-f964-463c-9bba-ac75251bb91f" xmi:type="uml:OpaqueExpression">
                    <body>The assigned source of a name before the right-hand side expression of an assignment expression is the same as the assigned source before the assignment expression. The assigned source of a name before the left-hand side is the assigned source after the right-hand side expression.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionAssignmentsBefore</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation"
                xmi:uuid="cab21514-8152-495e-a69e-cd9371574ef2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation-specification"
                    xmi:uuid="0581757c-2fd7-45df-89b6-5e2b58f887ce" xmi:type="uml:OpaqueExpression">
                    <body>An assignment requires collection conversion if the type of the right-hand side is a collection class and its multiplicity upper bound is 1, and the type of the left-hand side is not a collection class.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsCollectionConversionDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation"
                xmi:uuid="1f80f9f2-9de4-4fd3-989d-164e9c70ae23" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation-specification"
                    xmi:uuid="433d13ef-7df8-469e-84d6-c8c3bef4a856" xmi:type="uml:OpaqueExpression">
                    <body>An assignment requires BitString conversion if the type of the left-hand side is BitString and either the type of the right-hand side is Integer or collection conversion is required and the type of the right-hand side is a collection class whose sequence type is Integer.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsBitStringConversionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality"
                xmi:uuid="4c3345fd-5de9-4744-897e-c3ef0bd82f7a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality-specification"
                    xmi:uuid="0f6f16c1-fe3f-47af-bcc0-a3de2d8ff11d" xmi:type="uml:OpaqueExpression">
                    <body>If an assignment expression has a feature with a primary expression whose type is a data type, then the assignment expression must be a data value update.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionDataValueUpdateLegality</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-AssignmentExpression-assignmentExpressionIsRealConversionDerivation"
                xmi:uuid="a9596465-1745-4677-b50b-be367e1cdcf9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
                <specification
                    xmi:id="Alf-AssignmentExpression-assignmentExpressionIsRealConversionDerivation-specification"
                    xmi:uuid="603fd12d-f68e-41dc-9b0e-4e50be0d84bb" xmi:type="uml:OpaqueExpression">
                    <body>An assignment requires Real conversion if the type of the left-hand side conforms to Real and either the type of the right-hand side conforms to Integer or collection conversion is required and the type of the right-hand side is a collection class whose sequence type conforms to Integer.
</body>
                    <language>English</language>
                </specification>
                <name>assignmentExpressionIsRealConversionDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-AssignmentExpression-generalization"
                xmi:uuid="cb87a415-bb6c-4280-bed2-782766df333b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-operator"
                xmi:uuid="3de01010-18e2-4ced-93b0-cd1744e7dbd3" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-operator-ownedComment"
                    xmi:uuid="30a6a917-7bf5-4b89-b86e-395469e5a97c" xmi:type="uml:Comment">
                    <body>The image of the assignment operator used in the expression.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-operator"/>
                </ownedComment>
                <name>operator</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-leftHandSide"
                xmi:uuid="84fc3fde-a535-4c16-a8ee-9a0bd6fab391" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignmentExpression-leftHandSide-ownedComment"
                    xmi:uuid="b1f85935-f030-4e65-bd34-24d284e7d202" xmi:type="uml:Comment">
                    <body>The left-hand side of the assignment, to which a value is to be assigned.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-leftHandSide"/>
                </ownedComment>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_leftHandSide_assignmentExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-rightHandSide"
                xmi:uuid="831f5c3b-6d79-411b-be36-a515c57635a3" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignmentExpression-rightHandSide-ownedComment"
                    xmi:uuid="de026e3a-021a-4ab7-9b7c-25bf58adb960" xmi:type="uml:Comment">
                    <body>The right-hand side expression of the assignment, which produces the value being assigned.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-rightHandSide"/>
                </ownedComment>
                <name>rightHandSide</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_rightHandSide_assignmentExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-assignment"
                xmi:uuid="d25c28bc-6180-43a7-bcc2-22d02b1d5c09" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignmentExpression-assignment-ownedComment"
                    xmi:uuid="57e07de5-8ba4-40ad-8dcb-cbf7f61e6905" xmi:type="uml:Comment">
                    <body>If the left-hand side is a name, then the new assigned source for that name.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-assignment"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignmentExpression-assignment-lowerValue"
                    xmi:uuid="74962128-220d-4667-b928-65e11a2a493c" xmi:type="uml:LiteralInteger"/>
                <name>assignment</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignment_assignmentExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-feature"
                xmi:uuid="df174831-3a80-44ac-8d2d-74c78c704745" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignmentExpression-feature-ownedComment"
                    xmi:uuid="9ee22a52-4151-44b6-bfb5-6c7caaf8bde7" xmi:type="uml:Comment">
                    <body>If the left-hand side is a feature, then the referent for that feature.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-feature"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignmentExpression-feature-lowerValue"
                    xmi:uuid="e6ac4126-0c5b-42bb-b8a0-f5b6208589ca" xmi:type="uml:LiteralInteger"/>
                <name>feature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_feature_assignmentExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isIndexed"
                xmi:uuid="9dd4e054-1865-40c4-ae86-ec880646f5bc" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isIndexed-ownedComment"
                    xmi:uuid="cd92a9aa-32fa-485b-9858-f8e76aef6133" xmi:type="uml:Comment">
                    <body>If the left-hand side is a feature, whether it has an index or not.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isIndexed"/>
                </ownedComment>
                <name>isIndexed</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isArithmetic"
                xmi:uuid="9ef34ec3-60b6-427c-8ab6-909b2cf93165" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isArithmetic-ownedComment"
                    xmi:uuid="d499249a-efd4-4e76-afc5-24ce980fecca" xmi:type="uml:Comment">
                    <body>If this is a compound assignment, whether the compound assignment operator is arithmetic or not.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isArithmetic"/>
                </ownedComment>
                <name>isArithmetic</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isDefinition"
                xmi:uuid="f4e1d83b-fb60-4d16-972e-848c97345002" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isDefinition-ownedComment"
                    xmi:uuid="69bc43d7-1ea3-4115-b920-c0af9814b7dc" xmi:type="uml:Comment">
                    <body>Whether this assignment is the definition of a new local name or not.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isDefinition"/>
                </ownedComment>
                <name>isDefinition</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isSimple"
                xmi:uuid="eef1e54f-c0e5-46de-9e25-2e77e4dbc11f" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isSimple-ownedComment"
                    xmi:uuid="5c33141b-13b5-4de6-b2db-cbaac46595e4" xmi:type="uml:Comment">
                    <body>Whether this is a simple assignment or not.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isSimple"/>
                </ownedComment>
                <name>isSimple</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-expression"
                xmi:uuid="0091cbc8-a7fa-4d62-bda2-24d2edf5d44f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AssignmentExpression-expression-ownedComment"
                    xmi:uuid="097788f5-ff7e-449c-a413-453a0d254e07" xmi:type="uml:Comment">
                    <body>If this is a compound assignment, then the effective expression used to obtain the original value of the left-hand side to be updated.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-expression"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AssignmentExpression-expression-lowerValue"
                    xmi:uuid="f55d2e8e-cd74-4ae3-af63-2baa00aa2898" xmi:type="uml:LiteralInteger"/>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_assignmentExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isFeature"
                xmi:uuid="35dec012-b557-4fdc-a1bb-d72d891e2b06" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isFeature-ownedComment"
                    xmi:uuid="09326152-84d0-4efd-bf98-ac996d2c85c1" xmi:type="uml:Comment">
                    <body>Whether the left-hand side is a feature or not.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isFeature"/>
                </ownedComment>
                <name>isFeature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isDataValueUpdate"
                xmi:uuid="e6e83b07-cb98-40c7-8721-32a550b9e3d9" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isDataValueUpdate-ownedComment"
                    xmi:uuid="d69b430b-863e-42fc-b3a0-70307d8ed885" xmi:type="uml:Comment">
                    <body>Whether this assignment updates an attribute of a data value held in a local name or parameter.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isDataValueUpdate"/>
                </ownedComment>
                <name>isDataValueUpdate</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isCollectionConversion"
                xmi:uuid="a01ddd64-a310-4f7e-bd03-cf9b8580ebba" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isCollectionConversion-ownedComment"
                    xmi:uuid="64f78060-8f47-4d43-bc13-bebc3107aacb" xmi:type="uml:Comment">
                    <body>Whether collection conversion is required for this assignment.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isCollectionConversion"/>
                </ownedComment>
                <name>isCollectionConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isBitStringConversion"
                xmi:uuid="c56dedd8-2546-4a8d-83d6-732eb9dda011" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isBitStringConversion-ownedComment"
                    xmi:uuid="51e15ecf-9914-4c16-bd99-2067edbd23ec" xmi:type="uml:Comment">
                    <body>Whether BitString conversion is required for this assignment.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isBitStringConversion"/>
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AssignmentExpression-isRealConversion"
                xmi:uuid="171daf24-d7d1-436c-b6e0-a3d849d0de2a" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-isRealConversion-ownedComment"
                    xmi:uuid="3a48278c-be8e-4e1f-bf44-c5313f5f91aa" xmi:type="uml:Comment">
                    <body>Whether Real conversion is required for this assignment.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-isRealConversion"/>
                </ownedComment>
                <name>isRealConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-AssignmentExpression-updateAssignments"
                xmi:uuid="3c463413-88b3-4a43-9c66-cc2f48adfda9" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-AssignmentExpression-updateAssignments-ownedComment"
                    xmi:uuid="86de0cc3-a4e3-4770-b479-309d52a1ba87" xmi:type="uml:Comment">
                    <body>The assignments after an assignment expression are the assignments after the left-hand side, updated by the assignment from the assignment statement, if any.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssignmentExpression-updateAssignments-result"
                    xmi:uuid="86b1a59c-f638-4087-bc80-23401c64ba9a" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-AssignmentExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="f166bf54-f75b-4339-9561-a59f250b100a"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-AssignmentExpression-updateAssignments-result-upperValue"
                        xmi:uuid="e9550f9e-527f-49d1-850c-9902e7c9a922"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-AssignmentExpression-adjustMultiplicity"
                xmi:uuid="7cd73e30-fc3b-4ac2-a66a-83246c9031ad" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-AssignmentExpression-adjustMultiplicity-ownedComment"
                    xmi:uuid="05866c2c-3820-4d38-8390-1e1c9a7e77c2" xmi:type="uml:Comment">
                    <body>If the left-hand side is not indexed and is not a feature reference, then the assigned name is considered be known null if the condition is true, or known non-null if the condition is false. The right-hand side is then also checked for known nulls or non-nulls.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-adjustMultiplicity"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustMultiplicity-assignments"
                    xmi:uuid="96cc616c-8477-4322-8543-ca182a35e9fd" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-AssignmentExpression-adjustMultiplicity-assignments-lowerValue"
                        xmi:uuid="fea3c0e1-7cf0-4e2a-9a89-9f0a44a9bf77"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-AssignmentExpression-adjustMultiplicity-assignments-upperValue"
                        xmi:uuid="90ddc697-753d-481f-9dda-9dc7d9de0d73"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustMultiplicity-condition"
                    xmi:uuid="1afd69c3-99d9-4028-83be-d70a0652be0b" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustMultiplicity-result"
                    xmi:uuid="4539f9e4-c703-41bd-bda2-ec46ae0879e4" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-AssignmentExpression-adjustMultiplicity-result-lowerValue"
                        xmi:uuid="5f650211-c7e2-404d-86e3-e14dfe1dab67"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-AssignmentExpression-adjustMultiplicity-result-upperValue"
                        xmi:uuid="ac05cf29-a221-4179-814b-8dd85dcef354"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustMultiplicity</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-AssignmentExpression-adjustType"
                xmi:uuid="2e3db475-0fa4-41fd-aac6-9b33db10f8f3" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-AssignmentExpression-adjustType-ownedComment"
                    xmi:uuid="3487aff9-7176-454a-8693-3f3b22942bf2" xmi:type="uml:Comment">
                    <body>If the left-hand side is not indexed and is not a feature reference, then the assigned name is considered to have the given subtype. The type of the right-hand side is then also adjusted as appropriate.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-adjustType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustType-assignments"
                    xmi:uuid="21406a2a-cfdc-47d7-8352-caf955523cb1" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-AssignmentExpression-adjustType-assignments-lowerValue"
                        xmi:uuid="7c0d2bda-8666-4dac-a99d-76586ab7a644"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-AssignmentExpression-adjustType-assignments-upperValue"
                        xmi:uuid="ab087f0e-eef7-40bd-be42-3d20178f158f"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustType-subtype"
                    xmi:uuid="69f37a8a-52ff-4986-bef8-373302328aea" xmi:type="uml:Parameter">
                    <name>subtype</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssignmentExpression-adjustType-result"
                    xmi:uuid="b3d36a53-b62b-41a6-b6f3-efd96a67f0da" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-AssignmentExpression-adjustType-result-lowerValue"
                        xmi:uuid="f9567eee-14fc-4171-80ef-4de547d90ad0"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-AssignmentExpression-adjustType-result-upperValue"
                        xmi:uuid="7b49ddbc-042c-4d43-8ea7-b22fba5e0d82"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-AssignmentExpression-declaredType"
                xmi:uuid="d8860e53-95ef-47c6-8652-4ad36a7059d3" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-AssignmentExpression-declaredType-ownedComment"
                    xmi:uuid="7577c429-adfb-4ab0-bde1-992a5814eb80" xmi:type="uml:Comment">
                    <body>If an assignment expression is a simple assignment, then its declared type is the declared type of the right-hand side expression. Otherwise it is the type of the assignment expression.
</body>
                    <annotatedElement xmi:idref="Alf-AssignmentExpression-declaredType"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssignmentExpression-declaredType-result"
                    xmi:uuid="cd05b5af-3455-4041-a372-dccb3c3f4ff3" xmi:type="uml:Parameter">
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>declaredType</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>AssignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LinkOperationExpression"
            xmi:uuid="59ec7716-0005-4e34-88af-3c86b1884f4c" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LinkOperationExpression-ownedComment"
                xmi:uuid="adc0823b-c50d-4bc7-ba77-943b039217e5" xmi:type="uml:Comment">
                <body>An expression used to create or destroy the links of an association.
</body>
                <annotatedElement xmi:idref="Alf-LinkOperationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation"
                xmi:uuid="d6111414-0acf-4493-bb1f-94cb74e7b928" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation-specification"
                    xmi:uuid="20fc6265-343f-47bf-a098-1dc7f7f346a9" xmi:type="uml:OpaqueExpression">
                    <body>A link operation expression is for link creation if its operation is "createLink".
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionIsCreationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation"
                xmi:uuid="b8b69d5f-26f4-4aed-93d4-d912dcc9c9ce" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation-specification"
                    xmi:uuid="54ecd83a-022e-4c45-9e1c-ea52ad4d9a01" xmi:type="uml:OpaqueExpression">
                    <body>A link operation expression is for clearing an association if the operation is "clearAssoc".
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionIsClearDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation"
                xmi:uuid="5aa37338-4b79-4a62-bd8d-3cf46d5f05b8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation-specification"
                    xmi:uuid="0ca3c43d-4e4e-45f5-b38d-c1bba33ae907" xmi:type="uml:OpaqueExpression">
                    <body>The referent for a link operation expression is the named association.
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation"
                xmi:uuid="a9e6dfc5-1e22-4290-8c62-6cc05c99d179" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation-specification"
                    xmi:uuid="641174f7-1908-4ae7-af3e-38abf0372a11" xmi:type="uml:OpaqueExpression">
                    <body>There is no feature for a link operation expression.
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference"
                xmi:uuid="13074e93-7d29-4527-9f26-53ece0a7f5a1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference-specification"
                    xmi:uuid="77047028-43b4-4ce1-8953-9b7c67b1900f" xmi:type="uml:OpaqueExpression">
                    <body>The qualified name of a link operation expression must resolve to a single association.
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionAssociationReference</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility"
                xmi:uuid="3c23f55e-3fd2-4ed7-8e77-801ed9fa83f5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
                <specification
                    xmi:id="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility-specification"
                    xmi:uuid="c6b8f3d5-8338-4078-bd91-68202b60f3fa" xmi:type="uml:OpaqueExpression">
                    <body>Each argument expression must be assignable to its corresponding expression.
</body>
                    <language>English</language>
                </specification>
                <name>linkOperationExpressionArgumentCompatibility</name>
            </ownedRule>
            <generalization xmi:id="Alf-LinkOperationExpression-generalization"
                xmi:uuid="e44c831c-ae3a-4b67-9967-a2352ec0b982" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-LinkOperationExpression-operation"
                xmi:uuid="dd49aea0-5717-41bc-b117-bf6f80f6d035" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-LinkOperationExpression-operation-ownedComment"
                    xmi:uuid="d9336d3b-db35-4f2b-bffe-c6f21f255efb" xmi:type="uml:Comment">
                    <body>The name of the link operation.
</body>
                    <annotatedElement xmi:idref="Alf-LinkOperationExpression-operation"/>
                </ownedComment>
                <name>operation</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LinkOperationExpression-isCreation"
                xmi:uuid="d0d142bc-98c4-49c3-bbca-b59b09946310" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LinkOperationExpression-isCreation-ownedComment"
                    xmi:uuid="68288cea-f9d3-4529-b978-e9807e86755b" xmi:type="uml:Comment">
                    <body>Whether the operation is for link creation.
</body>
                    <annotatedElement xmi:idref="Alf-LinkOperationExpression-isCreation"/>
                </ownedComment>
                <name>isCreation</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LinkOperationExpression-isClear"
                xmi:uuid="df1f4db9-52b3-47bf-bef0-9aebab51920e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LinkOperationExpression-isClear-ownedComment"
                    xmi:uuid="0df640c0-1b64-44a0-8f7f-9d18eaecfaf9" xmi:type="uml:Comment">
                    <body>Whether the operation is clearing the association.
</body>
                    <annotatedElement xmi:idref="Alf-LinkOperationExpression-isClear"/>
                </ownedComment>
                <name>isClear</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LinkOperationExpression-associationName"
                xmi:uuid="ac98fc80-dad5-4252-943d-234e56bf3bd0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LinkOperationExpression-associationName-ownedComment"
                    xmi:uuid="070145a4-990c-4181-8c73-13133b4d926c" xmi:type="uml:Comment">
                    <body>The qualified name of the association whose links are being acted on.
</body>
                    <annotatedElement xmi:idref="Alf-LinkOperationExpression-associationName"/>
                </ownedComment>
                <name>associationName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_associationName_linkOperationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-LinkOperationExpression-parameterElements"
                xmi:uuid="0d0f4d05-f5a7-4fdc-a747-0ce8c987184d" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
                <ownedComment xmi:id="Alf-LinkOperationExpression-parameterElements-ownedComment"
                    xmi:uuid="84a5b247-fda8-4cae-b983-13f64b2597b1" xmi:type="uml:Comment">
                    <body>For a clear association operation, returns a single, typeless parameter. Otherwise, returns the ends of the named association.
</body>
                    <annotatedElement xmi:idref="Alf-LinkOperationExpression-parameterElements"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-LinkOperationExpression-parameterElements-result"
                    xmi:uuid="6e5c282f-825f-4aa7-9d34-4eb4aa38a5bb" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-LinkOperationExpression-parameterElements-result-lowerValue"
                        xmi:uuid="a1164d2d-2908-420e-a3f3-b419641b8420"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-LinkOperationExpression-parameterElements-result-upperValue"
                        xmi:uuid="1bd7f8fa-c030-42b7-8426-6f7b19201b1f"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>parameterElements</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>LinkOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassificationExpression"
            xmi:uuid="68a15405-7d8b-409c-97a1-9af726cf50f0" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassificationExpression-ownedComment"
                xmi:uuid="95dcdaa5-8bc7-4641-bacd-ba6d3b12d0f7" xmi:type="uml:Comment">
                <body>An expression used to test the dynamic type of its operand.
</body>
                <annotatedElement xmi:idref="Alf-ClassificationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation"
                xmi:uuid="d3bd474b-6f93-4e04-9c71-ce2e8e47a532" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation-specification"
                    xmi:uuid="18ae972b-09f4-47fc-acba-12b632a02ddc" xmi:type="uml:OpaqueExpression">
                    <body>A classification expression is direct if its operator is "hastype".
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionIsDirectDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ClassificationExpression-classificationExpressionReferentDerivation"
                xmi:uuid="73125804-041e-48ac-b188-e0bcbdea5c81" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionReferentDerivation-specification"
                    xmi:uuid="a1602d9b-a0ec-4d47-bc5f-eb920b32970a" xmi:type="uml:OpaqueExpression">
                    <body>The referent of a classification expression is the classifier to which the type name resolves.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionTypeDerivation"
                xmi:uuid="d823fa7a-a4d2-411a-b602-8469f577c65b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionTypeDerivation-specification"
                    xmi:uuid="6f92504b-4830-42b5-8269-50e1df447076" xmi:type="uml:OpaqueExpression">
                    <body>A classification expression has type Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionLowerDerivation"
                xmi:uuid="383ead1e-70ef-4984-ba6f-38772ce75988" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionLowerDerivation-specification"
                    xmi:uuid="882181e1-50ae-41b7-ad1c-3b69660980ae" xmi:type="uml:OpaqueExpression">
                    <body>A classification expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionUpperDerivation"
                xmi:uuid="0264fbdf-bb40-4d0b-8721-a85a0e9c657a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionUpperDerivation-specification"
                    xmi:uuid="2bd6faf8-ca99-40af-a2c7-e1ccf4f6f9d6" xmi:type="uml:OpaqueExpression">
                    <body>A classification expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionTypeName"
                xmi:uuid="ecfb8ffa-83dd-45c6-8a37-ef61910b6d27" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionTypeName-specification"
                    xmi:uuid="60256f28-3bbf-42c3-8500-154d2a8c4268" xmi:type="uml:OpaqueExpression">
                    <body>The type name in a classification expression must resolve to a non-template classifier.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionTypeName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionOperand"
                xmi:uuid="c159f071-8347-4508-86dc-0bae397616df" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
                <specification
                    xmi:id="Alf-ClassificationExpression-classificationExpressionOperand-specification"
                    xmi:uuid="1923065e-f5be-4f4c-8e43-6ded60d4d9da" xmi:type="uml:OpaqueExpression">
                    <body>The operand expression of a classification expression must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>classificationExpressionOperand</name>
            </ownedRule>
            <generalization xmi:id="Alf-ClassificationExpression-generalization"
                xmi:uuid="7a915dd0-69ee-4446-9a6b-282f34c82f17" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-UnaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ClassificationExpression-referent"
                xmi:uuid="4d24c1ba-e40c-4477-a2c8-e1a8b2e3ff96" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassificationExpression-referent-ownedComment"
                    xmi:uuid="7cef3bc4-7e2a-47ed-8822-2f8277b4f063" xmi:type="uml:Comment">
                    <body>Whether the test is for the operand to have the given type directly or to only conform to the given type.
</body>
                    <annotatedElement xmi:idref="Alf-ClassificationExpression-referent"/>
                </ownedComment>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_classificationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassificationExpression-isDirect"
                xmi:uuid="0818895c-1c57-4227-959f-fae6f55bbdf1" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ClassificationExpression-isDirect-ownedComment"
                    xmi:uuid="91069b11-ccbe-47ff-a980-620d3070a93b" xmi:type="uml:Comment">
                    <body>Whether the test is for the operand to have the given type directly or to only conform to the given type.
</body>
                    <annotatedElement xmi:idref="Alf-ClassificationExpression-isDirect"/>
                </ownedComment>
                <name>isDirect</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassificationExpression-typeName"
                xmi:uuid="30194ecd-c772-40e5-9b66-6550db4fd888" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassificationExpression-typeName-ownedComment"
                    xmi:uuid="4babd805-5c13-422d-bfad-ea50390f40f0" xmi:type="uml:Comment">
                    <body>The name of the type that the operand is to be tested against.
</body>
                    <annotatedElement xmi:idref="Alf-ClassificationExpression-typeName"/>
                </ownedComment>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_classificationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ClassificationExpression-adjustAssignments"
                xmi:uuid="81af116e-0a2c-4bfb-ac45-33c4b48e7c41" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-ClassificationExpression-adjustAssignments-ownedComment"
                    xmi:uuid="2f00e918-670e-4c37-85bd-6aa75ef56ae4" xmi:type="uml:Comment">
                    <body>If the truth condition is true and the type of the operand of a classification expression does not conform to the referent type of the classification expression, then set the known type of the operand of the classification expression to be the referent type of the classification expression.
</body>
                    <annotatedElement xmi:idref="Alf-ClassificationExpression-adjustAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassificationExpression-adjustAssignments-assignments"
                    xmi:uuid="0e7a6a54-8cf1-46be-b67b-8dae62869e5f" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-ClassificationExpression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="ddb13199-679b-4ffe-9101-bd86a91d5144"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-ClassificationExpression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="4edfe8ca-c5ce-4773-969b-cfc461db6372"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassificationExpression-adjustAssignments-condition"
                    xmi:uuid="16464577-052b-4e78-953d-f2698b3ceb31" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassificationExpression-adjustAssignments-result"
                    xmi:uuid="9a500efc-c5d6-49e4-b890-d6a868bdff49" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-ClassificationExpression-adjustAssignments-result-lowerValue"
                        xmi:uuid="b0ebb878-295a-4452-8335-6e8f12cd8663"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-ClassificationExpression-adjustAssignments-result-upperValue"
                        xmi:uuid="127a9257-75da-4f20-a997-fc3441a86b6b"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ClassificationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-StringLiteralExpression"
            xmi:uuid="4d084891-43c1-41db-90bc-3d96a465e4d1" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-StringLiteralExpression-ownedComment"
                xmi:uuid="e6a8026b-8b3d-4729-8bf5-c67caa45b14b" xmi:type="uml:Comment">
                <body>An expression that comprises a String literal.
</body>
                <annotatedElement xmi:idref="Alf-StringLiteralExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation"
                xmi:uuid="cb33cc07-ad5e-4f49-ad83-491beb6a6b8f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StringLiteralExpression"/>
                <specification
                    xmi:id="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation-specification"
                    xmi:uuid="e422a6ac-04aa-4051-822a-281ffa4f1adb" xmi:type="uml:OpaqueExpression">
                    <body>The type of a string literal expression is String.
</body>
                    <language>English</language>
                </specification>
                <name>stringLiteralExpressionTypeDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-StringLiteralExpression-generalization"
                xmi:uuid="306631f2-a3b4-45e6-bd2b-c7236a6baf31" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LiteralExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-StringLiteralExpression-image"
                xmi:uuid="d14374c8-0b97-47be-9d83-a1d2d5f821ce" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-StringLiteralExpression-image-ownedComment"
                    xmi:uuid="9191039e-7031-46aa-a00a-32826c01ac45" xmi:type="uml:Comment">
                    <body>The textual image of the literal token for this expression, with quote characters removed and escaped sequences resolved to the denoted special character.
</body>
                    <annotatedElement xmi:idref="Alf-StringLiteralExpression-image"/>
                </ownedComment>
                <name>image</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>StringLiteralExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ShiftExpression"
            xmi:uuid="87c0ab89-14b9-4abc-8c37-533331190b65" xmi:type="uml:Class">
            <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionTypeDerivation"
                xmi:uuid="0655546e-617d-4b55-b068-cb202e77cacc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ShiftExpression"/>
                <specification
                    xmi:id="Alf-ShiftExpression-shiftExpressionTypeDerivation-specification"
                    xmi:uuid="65d2eca5-cf87-4dc8-b2a9-2312fe914275" xmi:type="uml:OpaqueExpression">
                    <body>A shift expression has type BitString.
</body>
                    <language>English</language>
                </specification>
                <name>shiftExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionLowerDerivation"
                xmi:uuid="3a4508bb-775c-4cfd-b34c-7febf996c162" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ShiftExpression"/>
                <specification
                    xmi:id="Alf-ShiftExpression-shiftExpressionLowerDerivation-specification"
                    xmi:uuid="2b80a3a8-1cc6-4e05-8ad6-2c87730a2c51" xmi:type="uml:OpaqueExpression">
                    <body>A shift expression has a multiplicity lower bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>shiftExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionUpperDerivation"
                xmi:uuid="960c709d-1416-4490-8ed7-29c4ae1ec96e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ShiftExpression"/>
                <specification
                    xmi:id="Alf-ShiftExpression-shiftExpressionUpperDerivation-specification"
                    xmi:uuid="a7f4044b-1651-47e3-a878-c67c1b28ffe7" xmi:type="uml:OpaqueExpression">
                    <body>A shift expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>shiftExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionOperands"
                xmi:uuid="a6e8f9ef-d302-4db1-ba01-42ea2eb6de97" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ShiftExpression"/>
                <specification xmi:id="Alf-ShiftExpression-shiftExpressionOperands-specification"
                    xmi:uuid="39ee4dbc-be03-423e-a7c1-0a921c87241d" xmi:type="uml:OpaqueExpression">
                    <body>The first operand expression of a shift expression must have a type that conforms to the type BitString or Integer. The second operand expression must have a type that conforms to the type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>shiftExpressionOperands</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation"
                xmi:uuid="8a22329c-b26e-46ab-afcb-07aa2b0bb04f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ShiftExpression"/>
                <specification
                    xmi:id="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation-specification"
                    xmi:uuid="b1243159-3d1f-4078-ad89-20ffdcd2ee92" xmi:type="uml:OpaqueExpression">
                    <body>BitString conversion is required if the first operand expression of a shift expression has a type that conforms to type Integer.
</body>
                    <language>English</language>
                </specification>
                <name>shiftExpressionIsBitStringConversionDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-ShiftExpression-generalization"
                xmi:uuid="b394b637-fa1a-4095-90a9-2e2516d37a62" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ShiftExpression-isBitStringConversion"
                xmi:uuid="2012006b-98dd-48d4-a636-2cc28e8ab253" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ShiftExpression-isBitStringConversion-ownedComment"
                    xmi:uuid="7c4b7077-7a2f-4c80-a16f-f0c85bd3a1e4" xmi:type="uml:Comment">
                    <body>Whether the first operand expression requires BitString conversion.
</body>
                    <annotatedElement xmi:idref="Alf-ShiftExpression-isBitStringConversion"/>
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>ShiftExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LiteralExpression"
            xmi:uuid="03bff630-4ca9-47b2-96ce-543b81d36df5" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LiteralExpression-ownedComment"
                xmi:uuid="8f5a7770-0547-4df0-8f96-0e0ab509340d" xmi:type="uml:Comment">
                <body>An expression that comprises a primitive literal.
</body>
                <annotatedElement xmi:idref="Alf-LiteralExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-LiteralExpression-literalExpressionUpperDerivation"
                xmi:uuid="97c9fa20-c73a-42a8-a078-23bcd6f8a622" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LiteralExpression"/>
                <specification
                    xmi:id="Alf-LiteralExpression-literalExpressionUpperDerivation-specification"
                    xmi:uuid="8c7247a2-d661-4c75-9840-cad95c1c2a87" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a literal expression is always 1.
</body>
                    <language>English</language>
                </specification>
                <name>literalExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LiteralExpression-literalExpressionLowerDerivation"
                xmi:uuid="de8b0523-f18f-400a-a0e3-78ef66b7273c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LiteralExpression"/>
                <specification
                    xmi:id="Alf-LiteralExpression-literalExpressionLowerDerivation-specification"
                    xmi:uuid="dd2a72de-01e1-4eb8-a1dd-5a16bd9a13ad" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a literal expression is always 1.
</body>
                    <language>English</language>
                </specification>
                <name>literalExpressionLowerDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-LiteralExpression-generalization"
                xmi:uuid="fc16ac1d-818d-443f-9ed5-004ff0cac101" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <name>LiteralExpression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceConstructionExpression"
            xmi:uuid="232dd230-9813-4be5-b063-0f08f910ad2f" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceConstructionExpression-ownedComment"
                xmi:uuid="eb34ea37-9808-4b21-90da-b23d7878ae7a" xmi:type="uml:Comment">
                <body>An expression used to construct a sequence of values.
</body>
                <annotatedElement xmi:idref="Alf-SequenceConstructionExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation"
                xmi:uuid="726cd823-a9d2-4110-b035-73bce76f1cff" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation-specification"
                    xmi:uuid="3a44fb4c-dab1-49cd-ad19-70392eabec6a" xmi:type="uml:OpaqueExpression">
                    <body>If the type name of a sequence construction expression is not empty, then the type of the expression is the classifier to which the type name resolves.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation"
                xmi:uuid="ff059155-3dca-455e-9f03-fa347a2ab11c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation-specification"
                    xmi:uuid="32587e16-b8cb-4d2a-8aad-a7b457386b71" xmi:type="uml:OpaqueExpression">
                    <body>If a sequence construction expression has multiplicity, then its multiplicity upper bound is given by its elements, if this is not empty, and zero otherwise. If a sequence construction expression does not have multiplicity, then its multiplicity upper bound is one.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation"
                xmi:uuid="dc6fb676-991f-4346-9062-d06d22b02dca" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation-specification"
                    xmi:uuid="4670ca52-68b4-48bb-ab75-e9725e0303df" xmi:type="uml:OpaqueExpression">
                    <body>If a sequence construction expression has multiplicity, then its multiplicity lower bound is given by its elements, if this is not empty, and zero otherwise. If a sequence construction expression does not have multiplicity, then its multiplicity lower bound is one.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType"
                xmi:uuid="77c1313e-412f-4b2c-a241-d693cfabb0c9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType-specification"
                    xmi:uuid="11ab9000-ac1d-4449-bc32-0c38c462119a" xmi:type="uml:OpaqueExpression">
                    <body>If the type name of a sequence construction expression is not empty, then it must resolve to a non-template classifier. If the expression does not have multiplicity, then its type must be a collection class.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionType</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType"
                xmi:uuid="9aa6c179-3ed0-46e8-b98c-702a3ca5e370" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType-specification"
                    xmi:uuid="7f5fa0b5-41f9-494c-8f0f-7e833cf39001" xmi:type="uml:OpaqueExpression">
                    <body>If the elements of a sequence construction expression are given by a sequence range, then the expression must have a type that conforms to type Integer. If the elements are given by a sequence element list, and the sequence construction expression has a non-empty type, then each expression in the list must have a type that either conforms to the type of the sequence construction expression or is convertible to it by bit string conversion or real conversion.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionElementType</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore"
                xmi:uuid="5c1493fb-e31a-477b-b225-4ed814339cc5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
                <specification
                    xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore-specification"
                    xmi:uuid="b7f744ac-4be7-45cd-ae2f-041d90bf9788" xmi:type="uml:OpaqueExpression">
                    <body>If the elements of a sequence construction expression are given by a sequence expression list, then the assignments before the first expression in the list are the same as the assignments before the sequence construction expression, and the assignments before each subsequent expression are the assignments after the previous expression. If the elements are given by a sequence range, the assignments before both expressions in the range are the same as the assignments before the sequence construction expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceConstructionExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceConstructionExpression-generalization"
                xmi:uuid="57b1270f-978a-4e73-957c-c0409d5202c5" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-elements"
                xmi:uuid="cbecfc6f-8f66-466b-96cb-51cdf4f8f425" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceConstructionExpression-elements-ownedComment"
                    xmi:uuid="70f36f71-39cd-485a-8fe6-59b20b0142e0" xmi:type="uml:Comment">
                    <body>The specification of the elements in the sequence.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-elements"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SequenceConstructionExpression-elements-lowerValue"
                    xmi:uuid="32b6cc20-5453-49a1-83bb-9d72a8735348" xmi:type="uml:LiteralInteger"/>
                <name>elements</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-SequenceElements"/>
                <association xmi:idref="Alf-A_elements_sequenceConstructionExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity"
                xmi:uuid="a084e7e3-dc34-4e56-8203-61a3a56c5366" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity-ownedComment"
                    xmi:uuid="d5432b81-d048-4b9a-9775-2ab0270cec31" xmi:type="uml:Comment">
                    <body>Whether the sequence construction expression has a multiplicity indicator.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-hasMultiplicity"
                    />
                </ownedComment>
                <defaultValue
                    xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity-defaultValue"
                    xmi:uuid="7e290049-c871-4f42-b2dd-7801e280d15b" xmi:type="uml:LiteralBoolean"/>
                <name>hasMultiplicity</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-typeName"
                xmi:uuid="d6fe3ab9-6ff6-4fb8-9085-10c34c7e790e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceConstructionExpression-typeName-ownedComment"
                    xmi:uuid="49339532-ad3a-4da5-a471-75feae337263" xmi:type="uml:Comment">
                    <body>The name of the type of the elements in the sequence.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-typeName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SequenceConstructionExpression-typeName-lowerValue"
                    xmi:uuid="66e420e0-feb0-4324-bda7-57e6957d7d42" xmi:type="uml:LiteralInteger"/>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_sequenceConstructionExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SequenceConstructionExpression-updateAssignments"
                xmi:uuid="4fc14bcf-117c-41a4-aa08-01c6725fc26d" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-SequenceConstructionExpression-updateAssignments-ownedComment"
                    xmi:uuid="73ba3a42-54ee-46db-9280-ac0069981341" xmi:type="uml:Comment">
                    <body>If the elements of the sequence construction expression are given by a sequence expression list, then return the assignments after the last expression in the list (if the list is empty, then return the assignments before the sequence construction expression). If the elements are given by a sequence range, then return the union of the assignments after each of the expressions in the range.
</body>
                    <annotatedElement
                        xmi:idref="Alf-SequenceConstructionExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SequenceConstructionExpression-updateAssignments-result"
                    xmi:uuid="47c798b2-f8a5-4f92-b892-9bcc9b511ef3" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceConstructionExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="ad98ba45-8bea-40d2-a6fb-e0fbbcef8026"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceConstructionExpression-updateAssignments-result-upperValue"
                        xmi:uuid="2b3b7e46-13ed-4bfb-aaa3-2eda21b924ba"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SequenceConstructionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NamedTemplateBinding"
            xmi:uuid="65f72aa8-a502-47de-9419-a22f61325ef0" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NamedTemplateBinding-ownedComment"
                xmi:uuid="2ae3d3ba-af9d-4eb6-a8d7-9450bbe2ac59" xmi:type="uml:Comment">
                <annotatedElement xmi:idref="Alf-NamedTemplateBinding"/>
                <body>A template binding in which the arguments are matched to formal template parameters by name.  </body>
            </ownedComment>
            <generalization xmi:id="Alf-NamedTemplateBinding-generalization"
                xmi:uuid="56dad2b4-9c31-460e-9b12-5d9bc50cced1" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-TemplateBinding"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NamedTemplateBinding-substitution"
                xmi:uuid="259e4776-af27-4f8c-a2fe-2a5f0c12fd01" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamedTemplateBinding-substitution-ownedComment"
                    xmi:uuid="a177a2e6-f65e-46d6-b49b-af4c199d51a2" xmi:type="uml:Comment">
                    <body>The substitutions of arguments for template parameters.
</body>
                    <annotatedElement xmi:idref="Alf-NamedTemplateBinding-substitution"/>
                </ownedComment>
                <upperValue xmi:id="Alf-NamedTemplateBinding-substitution-upperValue"
                    xmi:uuid="3999a23b-70fb-410e-804a-f8621773931e"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>substitution</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-TemplateParameterSubstitution"/>
                <association xmi:idref="Alf-A_substitution_namedTemplateBinding"/>
            </ownedAttribute>
            <name>NamedTemplateBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-BooleanLiteralExpression"
            xmi:uuid="e3b94ae0-0311-4bb4-a68c-fc22211cadd8" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BooleanLiteralExpression-ownedComment"
                xmi:uuid="fc822b9d-b256-46ea-9f9f-963c781ddef5" xmi:type="uml:Comment">
                <body>An expression that comprises a Boolean literal.
</body>
                <annotatedElement xmi:idref="Alf-BooleanLiteralExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation"
                xmi:uuid="267ff12b-a721-411b-a695-c0a9995894d6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BooleanLiteralExpression"/>
                <specification
                    xmi:id="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation-specification"
                    xmi:uuid="b49e4a8c-96f6-4da0-9fa3-0fe8935692a6" xmi:type="uml:OpaqueExpression">
                    <body>The type of a boolean literal expression is Boolean.
</body>
                    <language>English</language>
                </specification>
                <name>booleanLiteralExpressionTypeDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-BooleanLiteralExpression-generalization"
                xmi:uuid="02dccbb6-7789-4bff-b7a0-f38833a66f3e" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LiteralExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BooleanLiteralExpression-image"
                xmi:uuid="5474a5e0-623b-4e06-8cd6-c5e41b7f1b80" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-BooleanLiteralExpression-image-ownedComment"
                    xmi:uuid="c7b35fee-71bf-4aa2-8d30-8c9606f86289" xmi:type="uml:Comment">
                    <body>The textual image of the literal token for this expression.
</body>
                    <annotatedElement xmi:idref="Alf-BooleanLiteralExpression-image"/>
                </ownedComment>
                <name>image</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>BooleanLiteralExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-QualifiedName" xmi:uuid="f80cc124-a903-4b70-bc5a-b15625cd5bf3"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-QualifiedName-ownedComment"
                xmi:uuid="1432283c-746b-4262-8287-9348ad094832" xmi:type="uml:Comment">
                <body>The representation of a qualified name as a sequence of individual simple names.
</body>
                <annotatedElement xmi:idref="Alf-QualifiedName"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation"
                xmi:uuid="5ef88ffa-43a9-4484-a0f5-9f45d151d329" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation-specification"
                    xmi:uuid="11f1eb63-f62f-40a4-8eb2-390067de7324" xmi:type="uml:OpaqueExpression">
                    <body>The unqualified name of a qualified name is the last  name binding.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameUnqualifiedNameDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNamePathNameDerivation"
                xmi:uuid="c3b94255-c9d6-4e01-83ea-5ffe3680cf23" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNamePathNameDerivation-specification"
                    xmi:uuid="268c3401-386b-4fc0-b3f1-3a005c66ea42" xmi:type="uml:OpaqueExpression">
                    <body>The path name for a qualified name consists of the string representation of each of the name bindings, separated by "::" punctuation. The string representation of a name binding is its name followed by the representation of its template binding, if it has one. The string representation of a positional template binding consists of an ordered list of the path names of its argument qualified names separated by commas, all surrounded by the angle brackets "&lt;" and "&gt;". The string representation of a named template binding consists of an ordered list of its template parameter substitutions, each consisting of the formal parameter name followed by "=&gt;" followed by the path name of the argument qualified name, separated by commas, all surrounded by the angle brackets "&lt;" and "&gt;".
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNamePathNameDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation"
                xmi:uuid="f232d467-bacc-4713-9820-2495b4a08071" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation-specification"
                    xmi:uuid="0ac12e00-1d02-42a9-acf2-fc94cfb9e6f1" xmi:type="uml:OpaqueExpression">
                    <body>A qualified name is a feature reference is its disambiguation is not empty.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameIsFeatureReferenceDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameQualificationDerivation"
                xmi:uuid="742f8885-5631-4670-8294-533e3f0dc61b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameQualificationDerivation-specification"
                    xmi:uuid="27c062ee-3c59-40e6-a8d9-be4ee59662ee" xmi:type="uml:OpaqueExpression">
                    <body>The qualification of a qualified name is a empty if the qualified name has only one name binding. Otherwise it is the qualified name consisting of all the name bindings of the original qualified name except for the last one. The qualification of a qualified name is considered ambiguous if the qualified name is ambiguous and has more than two name bindings.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameQualificationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameDisambiguationDerivation"
                xmi:uuid="6571a271-f354-4850-b3dd-d82fb573190b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameDisambiguationDerivation-specification"
                    xmi:uuid="5c86e0d9-e932-4f4d-9894-6bec9af9ee10" xmi:type="uml:OpaqueExpression">
                    <body>If a qualified name is not ambiguous or it has a qualification that resolves to a namespace, then it is has no disambiguation. Otherwise, its disambiguation is a feature reference with a name given by the unqualified name of the qualified name and a target expression determined by the disambiguation of the qualification of the qualified name.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameDisambiguationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameReferentDerivation"
                xmi:uuid="2cf2f8ee-acc2-4511-87a1-1b84f0e68e30" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameReferentDerivation-specification"
                    xmi:uuid="af95a880-ad23-41f9-ab6d-061ee4a07f51" xmi:type="uml:OpaqueExpression">
                    <body>The referents of a qualified name are the elements to which the name may resolve in the current scope, according to the UML rules for namespaces and named elements.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameLocalName"
                xmi:uuid="491351fd-dab3-4317-91d9-a0af01baa66f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification xmi:id="Alf-QualifiedName-qualifiedNameLocalName-specification"
                    xmi:uuid="99d8d1f6-04b5-4724-a14e-5337e7734530" xmi:type="uml:OpaqueExpression">
                    <body>If a qualified name is a local name, then the reference must be within the same local scope as the definition of the named element.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameLocalName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName"
                xmi:uuid="81818197-2ff5-48be-8eea-9a130ef8988d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName-specification"
                    xmi:uuid="97ede99b-c4c9-4769-af3b-da123a499a37" xmi:type="uml:OpaqueExpression">
                    <body>If a qualified name is an unqualified, non-local name, then it must be visible in the current scope of the use of the name.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameNonLocalUnqualifiedName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameQualifiedResolution"
                xmi:uuid="d71ec2b0-d0e2-4466-ba86-bd38870283c3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameQualifiedResolution-specification"
                    xmi:uuid="d3e6f94a-7c3f-4233-9d93-1b828f64da42" xmi:type="uml:OpaqueExpression">
                    <body>If a qualified name has a qualification, then its unqualified name must name an element of the namespace named by the qualification, where the first name in the qualification must name an element of the current scope.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameQualifiedResolution</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameTemplateBinding"
                xmi:uuid="ba49824f-9997-4cf9-a7df-04ac4335c313" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification xmi:id="Alf-QualifiedName-qualifiedNameTemplateBinding-specification"
                    xmi:uuid="81258293-471a-4749-9543-1f61dc9b1daa" xmi:type="uml:OpaqueExpression">
                    <body>If the unqualified name of a qualified name has a template binding, then the template name must resolve to a template. The template binding must have an argument name for each of the template parameters and each argument name must resolve to a classifier. If the template parameter has constraining classifiers, then the referent of the corresponding argument name must conform to all those constraining classifiers.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameTemplateBinding</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameTemplateNameDerivation"
                xmi:uuid="2f48ab11-0081-4059-b09e-4bf21a91199b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-QualifiedName"/>
                <specification
                    xmi:id="Alf-QualifiedName-qualifiedNameTemplateNameDerivation-specification"
                    xmi:uuid="a3dfa2c8-c6a5-4983-b9a6-768dc200df5a" xmi:type="uml:OpaqueExpression">
                    <body>If the last name binding in a qualified name has a template binding, then the template name is a qualified name with the same template bindings as the original qualified name, but with the template binding removed on the last name binding.
</body>
                    <language>English</language>
                </specification>
                <name>qualifiedNameTemplateNameDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-QualifiedName-generalization"
                xmi:uuid="342ddfa5-d24e-46e3-bc84-6ff7d7e201dc" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-QualifiedName-isAmbiguous"
                xmi:uuid="aeb3a562-74db-4ccf-a0e5-ca5f7815ad32" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-QualifiedName-isAmbiguous-ownedComment"
                    xmi:uuid="90530ba8-5530-4443-87b2-052400250c60" xmi:type="uml:Comment">
                    <body>Whether this qualified name is ambiguous.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-isAmbiguous"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-QualifiedName-isAmbiguous-defaultValue"
                    xmi:uuid="a6c58e4f-91d0-46f4-b920-373bca4eb1b4" xmi:type="uml:LiteralBoolean"/>
                <name>isAmbiguous</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-pathName"
                xmi:uuid="cdd3b90b-caf8-4c92-952e-d8cf5634613d" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-QualifiedName-pathName-ownedComment"
                    xmi:uuid="a8df7979-1f0a-406d-b361-753d80ff03c5" xmi:type="uml:Comment">
                    <body>The complete path name for the qualified name, with individual name bindings separated by "::" punctuation.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-pathName"/>
                </ownedComment>
                <name>pathName</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-isFeatureReference"
                xmi:uuid="4ac05c94-6563-460a-9c4d-b5605e5a9153" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-QualifiedName-isFeatureReference-ownedComment"
                    xmi:uuid="109835af-8104-4ba1-8a3b-ae7f9757b578" xmi:type="uml:Comment">
                    <body>Indicates whether this qualified name has been disambiguated to a feature reference.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-isFeatureReference"/>
                </ownedComment>
                <name>isFeatureReference</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-qualification"
                xmi:uuid="c9ee896f-19e3-4de1-be99-39ab97546c28" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-qualification-ownedComment"
                    xmi:uuid="f4ecc2aa-7121-4fab-a8bb-e375ecc06672" xmi:type="uml:Comment">
                    <body>The qualified name corresponding to the qualification part of this qualified name, if any.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-qualification"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-QualifiedName-qualification-lowerValue"
                    xmi:uuid="c839ea3c-de5e-442f-b126-310bb23e3fa0" xmi:type="uml:LiteralInteger"/>
                <name>qualification</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_qualification_qualifiedName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-disambiguation"
                xmi:uuid="1d3de2de-ce36-4791-817c-a6aa4bdc9b77" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-disambiguation-ownedComment"
                    xmi:uuid="21dd9f75-53ab-4d89-bb1f-9a87c6007acb" xmi:type="uml:Comment">
                    <body>The disambiguation into a feature reference of a syntactic element initially parsed as a qualified name.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-disambiguation"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-QualifiedName-disambiguation-lowerValue"
                    xmi:uuid="39ac7350-8a0b-4388-8144-fcaf7a8fb51c" xmi:type="uml:LiteralInteger"/>
                <name>disambiguation</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_disambiguation_qualifiedName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-nameBinding"
                xmi:uuid="ad9b6055-a11c-45f0-8123-c483559823fd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-nameBinding-ownedComment"
                    xmi:uuid="9d31d5cc-ced4-4b9f-b502-75c018b8775c" xmi:type="uml:Comment">
                    <body>The sequence of individual name bindings in this qualified name.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-nameBinding"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-QualifiedName-nameBinding-lowerValue"
                    xmi:uuid="0be5f081-fe5a-4ab9-9ce3-da7c81b4fede" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-QualifiedName-nameBinding-upperValue"
                    xmi:uuid="eabf8efd-9a0c-467d-a556-78dab83d88fa"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>nameBinding</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-NameBinding"/>
                <association xmi:idref="Alf-A_nameBinding_qualifiedName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-referent"
                xmi:uuid="a82dbd4a-9327-4ebc-8972-87407af342b7" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-referent-ownedComment"
                    xmi:uuid="08a96c03-b5aa-4b19-8a1a-e3a756d2606c" xmi:type="uml:Comment">
                    <body>The possible referents to which this qualified name may resolve. (Note that the UML rules for namespaces in general allow a namespace to contain elements of different kinds with the same name.) If the qualified name is for a template instantiation, then the referent is the equivalent bound element.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-referent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-QualifiedName-referent-lowerValue"
                    xmi:uuid="cf1133b1-b717-4b33-b312-438c9baf6524" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-QualifiedName-referent-upperValue"
                    xmi:uuid="e4a15531-136c-43ba-901c-e5c782135382"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_qualifiedName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-unqualifiedName"
                xmi:uuid="8f02835a-57d1-4953-b106-1c519f32ea35" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-unqualifiedName-ownedComment"
                    xmi:uuid="de143bae-076c-4ea2-bd38-c3a8904b9d46" xmi:type="uml:Comment">
                    <body>The rightmost individual name binding in the qualified name, without the qualification.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-unqualifiedName"/>
                </ownedComment>
                <name>unqualifiedName</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-NameBinding"/>
                <association xmi:idref="Alf-A_qualifiedName_unqualifiedName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-QualifiedName-templateName"
                xmi:uuid="5ccb8a23-ddbd-4b32-a335-de8a591cfd73" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedName-templateName-ownedComment"
                    xmi:uuid="598cfa3b-a2df-4ef8-8297-250c03ede014" xmi:type="uml:Comment">
                    <body>If this qualified name is for a template binding, then the name of the template for which this qualified name is a binding.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedName-templateName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-QualifiedName-templateName-lowerValue"
                    xmi:uuid="9686c558-7f5b-4861-be45-a3e279889c76" xmi:type="uml:LiteralInteger"/>
                <name>templateName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_templateName_qualifiedName"/>
            </ownedAttribute>
            <name>QualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NumericUnaryExpression"
            xmi:uuid="02a4d631-3736-4340-bff9-b0bed64c2073" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NumericUnaryExpression-ownedComment"
                xmi:uuid="52086ca3-59ca-429c-92b1-2a4d92e66a39" xmi:type="uml:Comment">
                <body>A unary expression with a numeric operator.
</body>
                <annotatedElement xmi:idref="Alf-NumericUnaryExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation"
                xmi:uuid="66b94c8c-f3fe-40e7-934e-01285296da1d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
                <specification
                    xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation-specification"
                    xmi:uuid="77f28001-bc7f-4297-a651-8f5aec13d598" xmi:type="uml:OpaqueExpression">
                    <body>If the operand of a numeric unary expression is of type Integer, then the expression is Integer. Of the operand is of type Real, then the type of the expression is Real. Otherwise it has no type.
</body>
                    <language>English</language>
                </specification>
                <name>numericUnaryExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation"
                xmi:uuid="4f3327e0-3de9-4f4d-9665-ff03484da29d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
                <specification
                    xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation-specification"
                    xmi:uuid="69593c71-48b5-4b50-abdc-205b2f9283f8" xmi:type="uml:OpaqueExpression">
                    <body>A numeric unary expression has the same multiplicity lower bound as its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>numericUnaryExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation"
                xmi:uuid="9f2ce641-6b03-4a62-818f-a4f240ed8c02" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
                <specification
                    xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation-specification"
                    xmi:uuid="8ff8427c-af6d-42d7-b1ab-3e24d6f642bd" xmi:type="uml:OpaqueExpression">
                    <body>A numeric unary expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>numericUnaryExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionOperand"
                xmi:uuid="259353bd-f540-428e-af0c-de1876739bb3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
                <specification
                    xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionOperand-specification"
                    xmi:uuid="fa4f5218-ed73-4698-8707-c39ae5ff0fe2" xmi:type="uml:OpaqueExpression">
                    <body>The operand expression must have a type that conforms to type Integer and a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>numericUnaryExpressionOperand</name>
            </ownedRule>
            <generalization xmi:id="Alf-NumericUnaryExpression-generalization"
                xmi:uuid="64f10009-9d6a-4b70-b94b-6d79204c68dd" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-UnaryExpression"/>
            </generalization>
            <name>NumericUnaryExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ConditionalTestExpression"
            xmi:uuid="bf4fed56-a541-4f23-a7de-fa566764f364" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ConditionalTestExpression-ownedComment"
                xmi:uuid="79c59592-45a3-439c-95a3-406092e8248a" xmi:type="uml:Comment">
                <body>An expression that uses the value of one operand expression to condition the evaluation of one of two other operand expressions.
</body>
                <annotatedElement xmi:idref="Alf-ConditionalTestExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation"
                xmi:uuid="a49cfa78-5d7b-43f1-8fda-f8b917325953" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
                <specification
                    xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation-specification"
                    xmi:uuid="00efe2f0-48f1-4817-aa96-24f11a5e393f" xmi:type="uml:OpaqueExpression">
                    <body>The type of a conditional-test operator expression is the effective common ancestor (if one exists) of the types of its second and third operand expressions.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalTestExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation"
                xmi:uuid="5f999087-a554-43ce-a3a6-37bd1855a9c5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
                <specification
                    xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation-specification"
                    xmi:uuid="e6c07007-719f-4d02-ac40-b21a76c41ef0" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a conditional-test operator expression is the minimum of the multiplicity lower bounds of its second and third operand expressions.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalTestExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation"
                xmi:uuid="35e8ae2f-9db3-40d0-8129-f954ecd01f55" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
                <specification
                    xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation-specification"
                    xmi:uuid="75a6e31c-c52d-4ca6-a691-837b606bda53" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a conditional-test operator expression is the maximum of the multiplicity upper bounds of its second and third operand expressions.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalTestExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionCondition"
                xmi:uuid="183dfa91-8872-4856-8414-909aa3e06679" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
                <specification
                    xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionCondition-specification"
                    xmi:uuid="0ed9feac-bebe-408f-a656-9b768bc5456e" xmi:type="uml:OpaqueExpression">
                    <body>The first operand expression of a conditional-test expression must be of a type that conforms to type Boolean and have multiplicity lower and upper bounds of 1.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalTestExpressionCondition</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore"
                xmi:uuid="293d1da0-bec8-40ba-ba20-f3f618f718fe" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
                <specification
                    xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore-specification"
                    xmi:uuid="e90cbac0-ec98-4424-82ec-dc6111a6d990" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the first operand expression of a conditional-test expression are the same as those before the conditional-test expression. The assignments before the second and third operand expressions are the same as those after the first operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>conditionalTestExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-ConditionalTestExpression-generalization"
                xmi:uuid="3909e982-8f8b-416a-84ae-1713dcccff66" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand1"
                xmi:uuid="013e4f9b-7c80-4682-9f0a-c0092908ce02" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ConditionalTestExpression-operand1-ownedComment"
                    xmi:uuid="813b7e62-9908-489c-837b-a9e747ea8d33" xmi:type="uml:Comment">
                    <body>The first operand expression, which provides the condition to be tested.
</body>
                    <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand1"/>
                </ownedComment>
                <name>operand1</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_operand1_conditionalTestExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand2"
                xmi:uuid="16be1ebe-71d3-4396-a11b-a603ac2b63fe" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ConditionalTestExpression-operand2-ownedComment"
                    xmi:uuid="57d7cece-3408-49b5-afba-935dfd6f4639" xmi:type="uml:Comment">
                    <body>The second operand expression, to be evaluated if the condition is true.
</body>
                    <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand2"/>
                </ownedComment>
                <name>operand2</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_operand2_conditionalTestExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand3"
                xmi:uuid="ff37e20c-b849-4231-b256-7c01bca392f6" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ConditionalTestExpression-operand3-ownedComment"
                    xmi:uuid="36b13f77-1a8d-41d5-ad09-e0917e04713f" xmi:type="uml:Comment">
                    <body>The third operand expression, to be evaluated if the condition is false.
</body>
                    <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand3"/>
                </ownedComment>
                <name>operand3</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_operand3_conditionalTestExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ConditionalTestExpression-updateAssignments"
                xmi:uuid="9dd9e6d7-c418-4041-8c8e-86d4ef79c37b" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-ConditionalTestExpression-updateAssignments-ownedComment"
                    xmi:uuid="bf6f461c-d8e1-4e9c-a809-3b9fb7b92bb0" xmi:type="uml:Comment">
                    <body>Returns unchanged all assignments for local names that are not reassigned in either the second or third operand expressions. Any local names that have different assignments after the second and third operand expressions are adjusted to have the conditional-test expression as their assigned source. If such a local name is defined in one operand expression but not the other, then it is adjusted to have multiplicity lower bound of 0 after the conditional test expression. If a local name has a new assignment after each of the second and third expressions, then, after the conditional-test expression, it has a type that is the effective common ancestor of its type after the second and third operand expressions, adjusted for known null and non-null names from the first operand expression being true, for the second operand expression, or false, for the third operand expression, a multiplicity lower bound that is the minimum of the lower bounds after the second and third operand expressions and a multiplicity upper bound that is the maximum of the upper bounds after the second and third expressions.

</body>
                    <annotatedElement xmi:idref="Alf-ConditionalTestExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ConditionalTestExpression-updateAssignments-result"
                    xmi:uuid="24b52a94-2ebe-402c-a263-c90e2e9a8d5f" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-ConditionalTestExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="a3b7bf2d-5795-4a60-b01c-da79aa050765"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-ConditionalTestExpression-updateAssignments-result-upperValue"
                        xmi:uuid="bb4a8d28-fbab-48ad-b591-07d0ed859bf9"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ConditionalTestExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-UnboundedLiteralExpression"
            xmi:uuid="712cad08-c63c-4983-a262-20fe429285a2" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-UnboundedLiteralExpression-ownedComment"
                xmi:uuid="5dc652c5-446b-43e7-a0d7-b5c4368ca6fc" xmi:type="uml:Comment">
                <body>An expression that comprises an unbounded value literal.
</body>
                <annotatedElement xmi:idref="Alf-UnboundedLiteralExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation"
                xmi:uuid="5a918e55-edf6-472b-9b27-cb3d3a691190" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnboundedLiteralExpression"/>
                <specification
                    xmi:id="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation-specification"
                    xmi:uuid="1cb03256-9d58-44c9-8f52-4caa418140af" xmi:type="uml:OpaqueExpression">
                    <body>The type of an unbounded literal expression is UnlimitedNatural.
</body>
                    <language>English</language>
                </specification>
                <name>unboundedLiteralExpressionTypeDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-UnboundedLiteralExpression-generalization"
                xmi:uuid="74a26334-ff6e-419e-abc7-dec822bb8b39" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LiteralExpression"/>
            </generalization>
            <name>UnboundedLiteralExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NamedExpression"
            xmi:uuid="c1545017-0f3f-432f-abc9-73376777d813" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NamedExpression-ownedComment"
                xmi:uuid="e5f52f97-4244-4cbf-bebe-1b112f15c969" xmi:type="uml:Comment">
                <body>A pairing of a parameter name and an argument expression in a tuple.
</body>
                <annotatedElement xmi:idref="Alf-NamedExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation"
                xmi:uuid="382880f5-d5e1-43e7-8977-ced864215289" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamedExpression"/>
                <specification
                    xmi:id="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation-specification"
                    xmi:uuid="7303e7e2-c667-47c3-a257-01471444ed9f" xmi:type="uml:OpaqueExpression">
                    <body>Collection conversion is required if the type of the corresponding parameter is a collection class and the type of the argument expression is not.
</body>
                    <language>English</language>
                </specification>
                <name>namedExpressionIsCollectionConversionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation"
                xmi:uuid="fccd741b-4f9a-47f9-9819-fd70cc92251b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamedExpression"/>
                <specification
                    xmi:id="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation-specification"
                    xmi:uuid="de8d972e-4906-485f-b0c2-8fcc01edee90" xmi:type="uml:OpaqueExpression">
                    <body>Bit string conversion is required if the type of the type of the corresponding parameter is BitString, or a collection class whose sequence type is BitString, and the type of the argument expression is not BitString.
</body>
                    <language>English</language>
                </specification>
                <name>namedExpressionIsBitStringConversionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NamedExpression-namedExpressionIsRealDerivation"
                xmi:uuid="2bdfe5ea-a744-4892-96a9-6b14c4c5c595" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamedExpression"/>
                <specification
                    xmi:id="Alf-NamedExpression-namedExpressionIsRealDerivation-specification"
                    xmi:uuid="bc6173ce-fa57-4c2d-9b7d-32e5d057d02c" xmi:type="uml:OpaqueExpression">
                    <body>Real conversion is required if the type of the corresponding parameter conforms to Real, or a collection class whose sequence type conforms to Real, and the type of the argument expression is not Real.
</body>
                    <language>English</language>
                </specification>
                <name>namedExpressionIsRealDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-NamedExpression-generalization"
                xmi:uuid="186daa1f-a786-4069-84f4-e7ee66ce3e77" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NamedExpression-name"
                xmi:uuid="88c599e0-079e-48f5-b181-aa8741db847b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-NamedExpression-name-ownedComment"
                    xmi:uuid="27e68a4f-c4e8-45b6-a05e-f2e5d63a2b27" xmi:type="uml:Comment">
                    <body>The parameter name.
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamedExpression-expression"
                xmi:uuid="a1a5f629-001f-4972-9fa8-d61db04c58fe" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamedExpression-expression-ownedComment"
                    xmi:uuid="52a2e8a8-5a3e-4b6e-a77e-153142659e32" xmi:type="uml:Comment">
                    <body>The argument expression.
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_namedExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamedExpression-index"
                xmi:uuid="bfd0ba05-2ce3-4458-9c82-1ea41e5bbc71" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamedExpression-index-ownedComment"
                    xmi:uuid="0c54133c-b39d-4f6a-95f3-f07baa7e3877" xmi:type="uml:Comment">
                    <body>An expression whose value gives an index into an ordered parameter. (This is only used in link operation expressions.)
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-index"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NamedExpression-index-lowerValue"
                    xmi:uuid="21517271-8653-4b06-bd90-be87fe5800f0" xmi:type="uml:LiteralInteger"/>
                <name>index</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_index_namedExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamedExpression-isCollectionConversion"
                xmi:uuid="c97d83a5-436a-4113-8423-5221127ded50" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-NamedExpression-isCollectionConversion-ownedComment"
                    xmi:uuid="893255a6-2593-478c-8af9-86b4808adabc" xmi:type="uml:Comment">
                    <body>Whether the argument expression requires collection conversion.
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-isCollectionConversion"/>
                </ownedComment>
                <name>isCollectionConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamedExpression-isBitStringConversion"
                xmi:uuid="387a73f9-ea34-447e-b7de-9bf313fe9f7c" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-NamedExpression-isBitStringConversion-ownedComment"
                    xmi:uuid="206f6819-854b-4a1f-a3b8-a965abe6977a" xmi:type="uml:Comment">
                    <body>Whether the argument expression requires bit string conversion.
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-isBitStringConversion"/>
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamedExpression-isRealConversion"
                xmi:uuid="284d7119-a06f-47a5-929b-9557402b2101" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-NamedExpression-isRealConversion-ownedComment"
                    xmi:uuid="0961693e-79f8-48d2-a508-e0abbaf30e6c" xmi:type="uml:Comment">
                    <body>Whether the argument expression requires Real conversion.
</body>
                    <annotatedElement xmi:idref="Alf-NamedExpression-isRealConversion"/>
                </ownedComment>
                <name>isRealConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>NamedExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceAccessExpression"
            xmi:uuid="8bb87618-d3e1-4980-b625-09932b880bef" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceAccessExpression-ownedComment"
                xmi:uuid="81857f9b-7e19-48b2-8177-6212fb4f4af2" xmi:type="uml:Comment">
                <body>An expression used to access a specific element of a sequence.
</body>
                <annotatedElement xmi:idref="Alf-SequenceAccessExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation"
                xmi:uuid="b2ba3b40-9950-44a5-b226-9497c150a316" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
                <specification
                    xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation-specification"
                    xmi:uuid="613ac34d-bf59-4b4e-971c-15810c13760f" xmi:type="uml:OpaqueExpression">
                    <body>The type of a sequence access expression is the same as the type of its primary expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceAccessExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation"
                xmi:uuid="9656b9f1-fcba-4f51-b38c-5dc9698f4107" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
                <specification
                    xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation-specification"
                    xmi:uuid="d7846977-0339-4b6f-8bd0-0544c1b8a4e5" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a sequence access expression is 0.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceAccessExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation"
                xmi:uuid="1b9d7ac6-ba49-4ce8-8e49-d8bfa0b66b56" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
                <specification
                    xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation-specification"
                    xmi:uuid="dfcc7c91-1b03-4432-9d3f-e916d2f7b6bc" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a sequence access expression is 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceAccessExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType"
                xmi:uuid="e4e10c41-4d7b-4ece-9e12-7d09825bb68a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
                <specification
                    xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType-specification"
                    xmi:uuid="e59c785f-28c6-425b-bb9a-b970c1606a77" xmi:type="uml:OpaqueExpression">
                    <body>The type of the index of a sequence access expression must be Integer.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceAccessExpressionIndexType</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity"
                xmi:uuid="0d125fd1-443e-4a61-a040-3257c038ef00" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
                <specification
                    xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity-specification"
                    xmi:uuid="c450fc22-129b-401a-a10b-af25cc194085" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of the index of a sequence access expression must be 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceAccessExpressionIndexMultiplicity</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceAccessExpression-generalization"
                xmi:uuid="e6979abb-7561-4af4-b74c-67328610d46c" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceAccessExpression-primary"
                xmi:uuid="553edfd0-3fd1-44df-86ae-831d5999adcd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceAccessExpression-primary-ownedComment"
                    xmi:uuid="a9918b3e-2a21-457b-a433-a277cd0d40c1" xmi:type="uml:Comment">
                    <body>The expression whose value is the sequence being accessed.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceAccessExpression-primary"/>
                </ownedComment>
                <name>primary</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_primary_sequenceAccessExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceAccessExpression-index"
                xmi:uuid="e3258357-00cf-4d06-9d16-90929eb1b600" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceAccessExpression-index-ownedComment"
                    xmi:uuid="ec023035-55c4-40b5-a439-69c153e852b2" xmi:type="uml:Comment">
                    <body>The expression whose value is the index of the element being accessed in the sequence.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceAccessExpression-index"/>
                </ownedComment>
                <name>index</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_index_sequenceAccessExpression"/>
            </ownedAttribute>
            <name>SequenceAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceOperationExpression"
            xmi:uuid="082d64cb-053e-435b-85b5-f1565762846d" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceOperationExpression-ownedComment"
                xmi:uuid="f38f6478-6796-4cc7-b5e3-0f7dedeab11b" xmi:type="uml:Comment">
                <body>An expression used to invoke a behavior as if it was an operation on a target sequence as a whole.
</body>
                <annotatedElement xmi:idref="Alf-SequenceOperationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation"
                xmi:uuid="b6346c7d-5f4f-4a5a-9fc7-9e382a345442" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation-specification"
                    xmi:uuid="cf69f5a9-8230-4443-acd9-087b6f04f5bd" xmi:type="uml:OpaqueExpression">
                    <body>The referent for a sequence operation expression is the behavior named by the operation for the expression. If any resolution of the operation name is a template behavior, then the implicit template binding of that behavior, if legal, is used to check the assignability of the target primary expression.

</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation"
                xmi:uuid="c4d1d527-6341-4b6e-9768-34898e1bf8e3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation-specification"
                    xmi:uuid="b44a42da-7c14-4585-9825-f0303d0db137" xmi:type="uml:OpaqueExpression">
                    <body>There is no feature for a sequence operation expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent"
                xmi:uuid="05ec86ad-4807-4dad-9100-376e1e4647ea" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent-specification"
                    xmi:uuid="e4dbe52c-6dd4-49b4-bb64-4249ee6db2de" xmi:type="uml:OpaqueExpression">
                    <body>There must be a single behavior that is a resolution of the operation qualified name of a sequence operation expression with a least one parameter, whose first parameter has direction in or inout, has multiplicity [0..*] and to which the target primary expression is assignable.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionOperationReferent</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility"
                xmi:uuid="08f6a59c-93bf-47ad-b2ef-b54b13cbea57" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility-specification"
                    xmi:uuid="5b13d1db-2485-48ba-b772-2716c0d68dd9" xmi:type="uml:OpaqueExpression">
                    <body>If the first parameter of the referent has direction inout, then the parameter type must have the same type as the primary expression, the primary expression must have the form of a left-hand side and, if the equivalent left-hand side is for a local name, that name must already exist. The first parameter must be assignable to the effective left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionTargetCompatibility</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility"
                xmi:uuid="a45a92a8-abaa-4ab7-915a-f63f933fa86b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility-specification"
                    xmi:uuid="4227da45-b381-4fc2-ad16-c34e5fbfde11" xmi:type="uml:OpaqueExpression">
                    <body>The type of an input argument expression of a sequence operation parameter must be assignable to its corresponding parameter. The type of an output parameter must be assignable to its corresponding argument expression. (Note that this implies that the type of an argument expression for an inout parameter must be the same as the type of that parameter.)
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionArgumentCompatibility</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore"
                xmi:uuid="a927b230-6ee0-4c92-93ff-113b844b9d8c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore-specification"
                    xmi:uuid="7cbbfa77-1555-4e9d-848b-2ed0768219fc" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the primary expression of a sequence operation expression are the same as the assignments before the sequence operation expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionAssignmentsBefore</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation"
                xmi:uuid="c792c609-8768-4b11-9ac3-89220e1774ef" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation-specification"
                    xmi:uuid="b8c46079-6b7b-4561-9b12-b764db743da3" xmi:type="uml:OpaqueExpression">
                    <body>Collection conversion is required if the type of the primary expression of a sequence operation expression is a collection class and the multiplicity upper bound of the primary expression is 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionIsCollectionConversionDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation"
                xmi:uuid="fb4cf8ca-0f84-48a3-a837-f27cb7927a08" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation-specification"
                    xmi:uuid="9b8ca0fa-6626-4528-bf4e-52d829468399" xmi:type="uml:OpaqueExpression">
                    <body>BitString conversion is required if type of the first parameter of the referent of a sequence operation expression is BitString and either the type of its primary expression is Integer or collection conversion is required and the type of its primary expression is a collection class whose sequence type is Integer.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionIsBitStringConversionDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter"
                xmi:uuid="d227eeb3-5589-414a-b25f-c0dc03983f48" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter-specification"
                    xmi:uuid="0273da84-92f1-4a2f-944b-59da8eb15f82" xmi:type="uml:OpaqueExpression">
                    <body>A local name that is assigned in the primary expression of a sequence operation expression may not be assigned in any expression in the tuple of the sequence operation expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionAssignmentsAfter</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation"
                xmi:uuid="48d93fd1-dcd5-443e-9b9b-38b8e6f0a73b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
                <specification
                    xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation-specification"
                    xmi:uuid="e2605b73-31b5-4927-858d-54a5cd4d8953" xmi:type="uml:OpaqueExpression">
                    <body>If the operation of a sequence operation expression has a first parameter whose direction is inout, then the effective left-hand side for the expression is constructed as follows: If the primary is a name expression, then the left-hand side is a name left-hand side with the name from the name expression as its target. If the primary is a property access expression, then the left-hand side is a feature left hand side with the feature reference from the property access expression as its feature. If the primary is a sequence access expression whose primary is a name expression or a property access expression, then the left-hand side is constructed from the primary of the sequence access expression as given previously and the index of the sequence access expression becomes the index of the left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceOperationExpressionLeftHandSideDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceOperationExpression-generalization"
                xmi:uuid="c6811405-7bde-42c0-b186-fb8df22750e5" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceOperationExpression-primary"
                xmi:uuid="ef78081e-9845-4b82-95d6-1c334e3f5e30" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceOperationExpression-primary-ownedComment"
                    xmi:uuid="e2291571-e869-4ddc-a09f-92e1a2e3104b" xmi:type="uml:Comment">
                    <body>The expression or class name whose value is gives the sequence to be operated on.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-primary"/>
                </ownedComment>
                <name>primary</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceOperationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceOperationExpression-operation"
                xmi:uuid="b653e3ea-b122-46cb-85b4-332c44077cfa" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceOperationExpression-operation-ownedComment"
                    xmi:uuid="718bb633-2321-498f-94fd-986ffc624be9" xmi:type="uml:Comment">
                    <body>The qualified name of the behavior being invoked.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-operation"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SequenceOperationExpression-operation-lowerValue"
                    xmi:uuid="f7700576-59cf-4350-8e20-91a4eba54a1b" xmi:type="uml:LiteralInteger"/>
                <name>operation</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_operation_sequenceOperationExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceOperationExpression-isCollectionConversion"
                xmi:uuid="2a4f67d2-faf3-4723-b886-4286afc1cea3" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-SequenceOperationExpression-isCollectionConversion-ownedComment"
                    xmi:uuid="b24a4c6b-55d4-47b3-ada9-d7c2565de505" xmi:type="uml:Comment">
                    <body>Whether the primary expression requires collection conversion.
</body>
                    <annotatedElement
                        xmi:idref="Alf-SequenceOperationExpression-isCollectionConversion"/>
                </ownedComment>
                <name>isCollectionConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceOperationExpression-isBitStringConversion"
                xmi:uuid="52c5cb3c-3811-4661-aac5-54af9acd7653" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-SequenceOperationExpression-isBitStringConversion-ownedComment"
                    xmi:uuid="e2ce8491-fb9b-493a-9158-beab6de4d9e8" xmi:type="uml:Comment">
                    <body>Whether type primary expression requires BitString conversion.
</body>
                    <annotatedElement
                        xmi:idref="Alf-SequenceOperationExpression-isBitStringConversion"/>
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceOperationExpression-leftHandSide"
                xmi:uuid="cd2c28cc-aeea-42d0-bb14-e024534846f6" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceOperationExpression-leftHandSide-ownedComment"
                    xmi:uuid="fc3dfe3a-318e-43ce-ae76-5505e2dc0209" xmi:type="uml:Comment">
                    <body>The effective left-hand side corresponding to the primary expression, if the sequence operation is “in place” (that is, has a first parameter with direction inout).
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-leftHandSide"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SequenceOperationExpression-leftHandSide-lowerValue"
                    xmi:uuid="79d9f040-b87e-4a9b-a52f-a169c4470d2e" xmi:type="uml:LiteralInteger"/>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_leftHandSide_sequenceOperationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SequenceOperationExpression-updateAssignments"
                xmi:uuid="9a643ff1-97a5-42b0-bd5c-292ad4ac2a38" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-SequenceOperationExpression-updateAssignments-ownedComment"
                    xmi:uuid="0c076689-31a4-4872-921a-298ea3f76f78" xmi:type="uml:Comment">
                    <body>The assignments after a sequence operation expression include those made in the primary expression and those made in the tuple and, for an "in place" operation (one whose first parameter is inout), that made by the sequence operation expression itself.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-updateAssignments"
                    />
                </ownedComment>
                <ownedParameter xmi:id="Alf-SequenceOperationExpression-updateAssignments-result"
                    xmi:uuid="dfdbbfeb-072c-404c-8c0f-35c45e154749" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceOperationExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="97624dee-07d9-4b0f-b3a9-166227c1c827"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceOperationExpression-updateAssignments-result-upperValue"
                        xmi:uuid="61482fde-52aa-48b7-9fe3-5654f58b8d47"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SequenceOperationExpression-parameterElements"
                xmi:uuid="42b24b6b-f2d4-4c00-9371-4e09d677023e" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
                <ownedComment
                    xmi:id="Alf-SequenceOperationExpression-parameterElements-ownedComment"
                    xmi:uuid="86558880-53ae-4e75-a7d5-4e1156ec4dc6" xmi:type="uml:Comment">
                    <body>Returns the list of parameter elements from the superclass operation, with the first parameter removed (since the argument for the first parameter is given by the primary expression of a sequence operation expression, not in its tuple).
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-parameterElements"
                    />
                </ownedComment>
                <ownedParameter xmi:id="Alf-SequenceOperationExpression-parameterElements-result"
                    xmi:uuid="57e4b88b-d899-42c9-aa7f-451bd63c49fc" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceOperationExpression-parameterElements-result-lowerValue"
                        xmi:uuid="e4f5860d-cc5f-4dd8-88fe-a0d38cf92c99"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceOperationExpression-parameterElements-result-upperValue"
                        xmi:uuid="5d135d83-3234-4ec9-80c6-deca74f94210"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>parameterElements</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SequenceOperationExpression-adjustAssignments"
                xmi:uuid="0d26b42e-6a8c-4384-8d81-c37265caa52e" xmi:type="uml:Operation">
                <ownedComment
                    xmi:id="Alf-SequenceOperationExpression-adjustAssignments-ownedComment"
                    xmi:uuid="c2ecad86-9500-460a-8bc6-2e9856a7375b" xmi:type="uml:Comment">
                    <body>If the invoked behavior is CollectionFunctions::isEmpty or SequenceFunctions::IsEmpty, then check the primary expression for known nulls and non-nulls using the given truth condition. If the invoked behavior is CollectionFunctions::notEmpty or SequenceFunctions::NotEmpty, then check the primary expression for known nulls and non-nulls using the negation of the given truth condition.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceOperationExpression-adjustAssignments"
                    />
                </ownedComment>
                <ownedParameter
                    xmi:id="Alf-SequenceOperationExpression-adjustAssignments-assignments"
                    xmi:uuid="c6aea775-82e0-4878-b63a-a5cf011f8963" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceOperationExpression-adjustAssignments-assignments-lowerValue"
                        xmi:uuid="055918a7-bdea-462f-a8ed-12d4337dee5a"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceOperationExpression-adjustAssignments-assignments-upperValue"
                        xmi:uuid="19faf321-1623-4e8b-be46-0d39d8b87201"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>assignments</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SequenceOperationExpression-adjustAssignments-condition"
                    xmi:uuid="e05478b0-7d1a-47eb-8d7e-856755732585" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>condition</name>
                    <visibility>public</visibility>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SequenceOperationExpression-adjustAssignments-result"
                    xmi:uuid="b32b3a1e-2120-420d-a8fc-02d2aeba2b64" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceOperationExpression-adjustAssignments-result-lowerValue"
                        xmi:uuid="e19c7238-3bac-4c00-abed-6daddaf02ce8"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceOperationExpression-adjustAssignments-result-upperValue"
                        xmi:uuid="7f659463-3a90-4152-b2ee-cdb4ea9f6eba"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>adjustAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SequenceOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-FeatureLeftHandSide"
            xmi:uuid="ed9c1305-4ab8-450f-88ee-814d782b4954" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-FeatureLeftHandSide-ownedComment"
                xmi:uuid="71cf9319-0563-4f3e-9697-40147f9b4be0" xmi:type="uml:Comment">
                <body>A left-hand side that is a property reference.
</body>
                <annotatedElement xmi:idref="Alf-FeatureLeftHandSide"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation"
                xmi:uuid="fef4b843-6f3c-4cff-bda9-faef029f1ecb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation-specification"
                    xmi:uuid="d44e74a7-e0af-45f4-a091-25b586ec1de6" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of the feature reference of a feature left-hand side are the assignments before the feature left-hand side.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideAssignmentBeforeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation"
                xmi:uuid="85673f47-9ada-4f2b-810d-d9c87e435c59" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation-specification"
                    xmi:uuid="f4e8be26-7575-4f5d-b234-bfb842b303bb" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a feature left-hand side are the assignments after the expression of the feature reference or, if there is an index, those after the index expression.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideAssignmentAfterDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression"
                xmi:uuid="3cbba47b-a9aa-424f-b8c7-94c00198f40f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression-specification"
                    xmi:uuid="4df48ed4-4d06-4043-a530-07dab91d76a8" xmi:type="uml:OpaqueExpression">
                    <body>The expression of the feature reference of a feature left-hand side must have a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideFeatureExpression</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore"
                xmi:uuid="7606783e-b99f-42b0-9dd1-7cdb6696694a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore-specification"
                    xmi:uuid="a20ac584-8c58-4691-b0aa-4b0032cff878" xmi:type="uml:OpaqueExpression">
                    <body>If a feature left-hand side has an index, then the assignments before the index expression are the assignments after the expression of the feature reference.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation"
                xmi:uuid="71cb6aa2-60ad-44cf-b4dc-bd49d27db5e2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation-specification"
                    xmi:uuid="3dd56044-3380-4252-bd5a-2f5fcf52531d" xmi:type="uml:OpaqueExpression">
                    <body>The referent of a feature left-hand side is the structural feature to which the feature reference of the left-hand side resolves.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation"
                xmi:uuid="8ae1f6eb-ceba-4f09-a9a1-2534e419283c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation-specification"
                    xmi:uuid="1856edcf-b59c-4906-8538-eaee174fd37d" xmi:type="uml:OpaqueExpression">
                    <body>The type of a feature left-hand side is the type of its referent.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation"
                xmi:uuid="0fa65ece-2923-4164-9313-7a4a3dc73283" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation-specification"
                    xmi:uuid="f1204c45-3bd7-4e70-8a4b-a00832aff80d" xmi:type="uml:OpaqueExpression">
                    <body>If a feature left-hand side is indexed, then its lower bound is 0. Otherwise, its lower bound is that of its referent.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation"
                xmi:uuid="4422833d-1576-4b73-acb5-a2f05ad156f5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation-specification"
                    xmi:uuid="535041fb-b7dc-44e9-9f9c-210e6baaea3a" xmi:type="uml:OpaqueExpression">
                    <body>If a feature left-hand side is indexed, then its upper bound is 1. Otherwise, its upper bound is that of its referent.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint"
                xmi:uuid="978b7a31-0734-43eb-8698-8d7556e75f89" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint-specification"
                    xmi:uuid="6078de8b-e29f-42b3-b58f-5a7ade82949f" xmi:type="uml:OpaqueExpression">
                    <body>The feature of a feature-left hand side must have a single referent that is a structural feature.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideReferentConstraint</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature"
                xmi:uuid="1266a7ba-1101-4eb5-91e0-d8c92d174751" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
                <specification
                    xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature-specification"
                    xmi:uuid="8b070ea6-2046-4586-a8b6-66309f885f8d" xmi:type="uml:OpaqueExpression">
                    <body>If a feature left-hand side has an index, then the referent of the feature must be ordered and non-unique.
</body>
                    <language>English</language>
                </specification>
                <name>featureLeftHandSideIndexedFeature</name>
            </ownedRule>
            <generalization xmi:id="Alf-FeatureLeftHandSide-generalization"
                xmi:uuid="4c014830-a957-49ed-b877-0e48e22db102" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-LeftHandSide"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-FeatureLeftHandSide-feature"
                xmi:uuid="3bfebe77-c01c-4cc7-b33d-0f9674f39a1f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-FeatureLeftHandSide-feature-ownedComment"
                    xmi:uuid="234afc82-d44f-4b8e-be36-979177a3319c" xmi:type="uml:Comment">
                    <body>The structural feature being assigned.
</body>
                    <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-feature"/>
                </ownedComment>
                <name>feature</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_feature_featureLeftHandSide"/>
            </ownedAttribute>
            <name>FeatureLeftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-IsolationExpression"
            xmi:uuid="fb51bec4-8843-4616-a4db-524cd1a4c961" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-IsolationExpression-ownedComment"
                xmi:uuid="c4b8342c-d981-4c1e-bd0f-c7438ff19643" xmi:type="uml:Comment">
                <body>An expression used to evaluate its operand expression in isolation.
</body>
                <annotatedElement xmi:idref="Alf-IsolationExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionTypeDerivation"
                xmi:uuid="cb6d2436-19ed-4b6d-874d-ca403be0227a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsolationExpression"/>
                <specification
                    xmi:id="Alf-IsolationExpression-isolationExpressionTypeDerivation-specification"
                    xmi:uuid="3bfc9ee2-b861-4eb7-b165-f8f2335f3705" xmi:type="uml:OpaqueExpression">
                    <body>An isolation expression has the type of its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>isolationExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionLowerDerivation"
                xmi:uuid="b2094b92-a74e-4217-a367-20db69df239d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsolationExpression"/>
                <specification
                    xmi:id="Alf-IsolationExpression-isolationExpressionLowerDerivation-specification"
                    xmi:uuid="94e0565a-f48f-4848-94bf-7cc90606633a" xmi:type="uml:OpaqueExpression">
                    <body>An isolation expression has the multiplicity lower bound of its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>isolationExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionUpperDerivation"
                xmi:uuid="03486692-7acb-45da-8ef5-178650ede52b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IsolationExpression"/>
                <specification
                    xmi:id="Alf-IsolationExpression-isolationExpressionUpperDerivation-specification"
                    xmi:uuid="853800ea-8567-454c-9829-46e7aa04a912" xmi:type="uml:OpaqueExpression">
                    <body>An isolation expression has the multiplicity upper bound of its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>isolationExpressionUpperDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-IsolationExpression-generalization"
                xmi:uuid="84dbf82c-0a19-492b-8caa-4cf1a80d913f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-UnaryExpression"/>
            </generalization>
            <name>IsolationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PropertyAccessExpression"
            xmi:uuid="9434798f-5c9e-4b88-9df4-5a76bf0d567d" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PropertyAccessExpression-ownedComment"
                xmi:uuid="d15444cf-97d1-4c49-b9e7-cfd3ee690ad5" xmi:type="uml:Comment">
                <body>An expression comprising a reference to a structural feature.
</body>
                <annotatedElement xmi:idref="Alf-PropertyAccessExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation"
                xmi:uuid="f5b900c5-c198-467f-a197-2de8dc351cc7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation-specification"
                    xmi:uuid="542c8d47-2f9b-4555-b199-03ec049769b3" xmi:type="uml:OpaqueExpression">
                    <body>The feature of a property access expression is the structural feature to which its feature reference resolves.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation"
                xmi:uuid="251083c0-3073-432f-9feb-62b3368f1cff" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation-specification"
                    xmi:uuid="905f02c1-7dfe-4597-ae60-0d2a91cee09e" xmi:type="uml:OpaqueExpression">
                    <body>The type of a property access expression is the type of the referenced feature.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation"
                xmi:uuid="7dcfb5c0-a6ee-41d4-8c77-adf8f22c2b31" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation-specification"
                    xmi:uuid="9bfaec92-bce2-4e68-bbb4-d42a4e3d53c2" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a property access expression is given by the product of the multiplicity upper bounds of the referenced feature and the target expression.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation"
                xmi:uuid="73b6260b-0979-4933-b0dc-34461ca90c6b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation-specification"
                    xmi:uuid="52265473-fee8-48b8-9448-2c00ded733f1" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a property access expression is given by the product of the multiplicity lower bounds of the referenced feature and the target expression.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution"
                xmi:uuid="4e3c46ca-f29e-4430-aa73-5b58062b86d9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution-specification"
                    xmi:uuid="35c71798-460d-4565-8305-8f63c5f694de" xmi:type="uml:OpaqueExpression">
                    <body>The feature reference for a property access expression must resolve to a single structural feature.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionFeatureResolution</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore"
                xmi:uuid="d79b4fc8-795b-4e6b-80bf-72dc24ba7e75" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
                <specification
                    xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore-specification"
                    xmi:uuid="0407ab8d-6604-444a-999e-e0840a39c60b" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of the feature reference of a property access expression are the same as before the property access expression.
</body>
                    <language>English</language>
                </specification>
                <name>propertyAccessExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-PropertyAccessExpression-generalization"
                xmi:uuid="2720c12b-376b-4a6e-b498-a88d579266c3" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-PropertyAccessExpression-featureReference"
                xmi:uuid="d3794af9-bbea-4872-a352-e8dbb50ac611" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-PropertyAccessExpression-featureReference-ownedComment"
                    xmi:uuid="1182ad32-f7ef-4da5-98f7-226b1910e1a8" xmi:type="uml:Comment">
                    <body>A reference to a structural feature.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyAccessExpression-featureReference"/>
                </ownedComment>
                <name>featureReference</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_featureReference_propertyAccessExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-PropertyAccessExpression-feature"
                xmi:uuid="4932b9a7-bb73-460b-97e9-f5de02cb1c01" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-PropertyAccessExpression-feature-ownedComment"
                    xmi:uuid="b5d30e82-7d2a-4f56-a577-08136c6ddd58" xmi:type="uml:Comment">
                    <body>The referenced structural feature.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyAccessExpression-feature"/>
                </ownedComment>
                <name>feature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_feature_propertyAccessExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-PropertyAccessExpression-updateAssignments"
                xmi:uuid="e6b03076-a5a8-4905-a1d5-5c218b6d0790" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-PropertyAccessExpression-updateAssignments-ownedComment"
                    xmi:uuid="ca7f2c1b-161a-44f6-ba31-ef0d569e0b3d" xmi:type="uml:Comment">
                    <body>The assignments after a property access expression are the same as those after the target expression of its feature reference.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyAccessExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PropertyAccessExpression-updateAssignments-result"
                    xmi:uuid="e6eb8643-1bb1-4700-a744-f35e6f57fc2e" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-PropertyAccessExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="c0b0a09c-fa41-4dfe-8aa5-1caa3eb20ab6"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-PropertyAccessExpression-updateAssignments-result-upperValue"
                        xmi:uuid="7f721f46-c2e3-4b0d-9e76-33b6566a4d6d"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>PropertyAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NullCoalescingExpression"
            xmi:uuid="4295638f-8197-4b50-bb20-aa1aa4f0f01a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NullCoalescingExpression-ownedComment"
                xmi:uuid="7f792999-735d-4fd5-a571-9b4b9515d1a0" xmi:type="uml:Comment">
                <body>An expression that evaluates to the result of its first operand expression, unless that result is null and it has a second operand expression, in which case it evaluates to the result of its second operand expression.
</body>
                <annotatedElement xmi:idref="Alf-NullCoalescingExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionAssignmentsBefore"
                xmi:uuid="53efb1f9-40dc-40ba-a9dc-2dcaed240fe3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NullCoalescingExpression"/>
                <specification
                    xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionAssignmentsBefore-specification"
                    xmi:uuid="2a7adaa0-cbcb-46cf-8a74-fe8a41f4f573" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the first operand expression of a null-coalescing expression are the same as those before the null-coalescing expression. The assignments before the second operand expression are the same as those after the first operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>nullCoalescingExpressionAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionLowerDerivation"
                xmi:uuid="9f482c7a-02e9-410e-82b0-e7a7dc216f0e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NullCoalescingExpression"/>
                <specification
                    xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionLowerDerivation-specification"
                    xmi:uuid="8b1e3052-ff84-4624-9ec6-b480421e0587" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity lower bound of a null-coalescing expression is the multiplicity lower bound of its first greater than 0; otherwise it is 1, if the multiplicity lower bound of its second operand expression is greater than 0; otherwise, it is 0.
</body>
                    <language>English</language>
                </specification>
                <name>nullCoalescingExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionTypeDerivation"
                xmi:uuid="5241ed3a-402a-41f4-8611-926960f99a0d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NullCoalescingExpression"/>
                <specification
                    xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionTypeDerivation-specification"
                    xmi:uuid="ff1f7217-454a-4af2-9c3a-958b1d1e9395" xmi:type="uml:OpaqueExpression">
                    <body>If one of the operand expressions of a null-coalescing expression is identically null (untyped with multiplicity 0..0), then the type of the null-coalescing expression is the same as the type of the other operand expressions. Otherwise, the type of a null-coalescing expression is the effective common ancestor of the types of its operands, if one exists, and empty, if it does not.
</body>
                    <language>English</language>
                </specification>
                <name>nullCoalescingExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionUpperDerivation"
                xmi:uuid="db472cee-b84f-4222-baee-72803a3718ef" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NullCoalescingExpression"/>
                <specification
                    xmi:id="Alf-NullCoalescingExpression-nullCoalescingExpressionUpperDerivation-specification"
                    xmi:uuid="f7c3f2b5-8e48-48bd-861c-810d3a409128" xmi:type="uml:OpaqueExpression">
                    <body>The multiplicity upper bound of a null-coalescing expression is the maximum of the multiplicity upper bounds of its operands.
</body>
                    <language>English</language>
                </specification>
                <name>nullCoalescingExpressionUpperDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-NullCoalescingExpression-generalization"
                xmi:uuid="4ef64c11-1043-48a5-83a4-cf4313049fc2" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-BinaryExpression"/>
            </generalization>
            <ownedOperation xmi:id="Alf-NullCoalescingExpression-updateAssignments"
                xmi:uuid="759b6e78-063a-45f0-aa34-30a5488a5f1b" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-BinaryExpression-updateAssignments"/>
                <ownedComment xmi:id="Alf-NullCoalescingExpression-updateAssignments-ownedComment"
                    xmi:uuid="4bf3e838-8d89-48c2-bdc4-fa4913a2eadb" xmi:type="uml:Comment">
                    <body>If a name has the same assigned source after the second operand expression of a null-coalescing expression as before it, that is its assigned source after the null-coalescing expression. Otherwise, its assigned source after the null-coalescing expression is the null-coalescing expression. If a name is unassigned before the second operand expression but assigned after it, then it has a multiplicity lower bound of 0 after the null-coalescing expression.
</body>
                    <annotatedElement xmi:idref="Alf-NullCoalescingExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NullCoalescingExpression-updateAssignments-result"
                    xmi:uuid="f6989593-6a71-4e0a-a965-8c1c57e7df29" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-NullCoalescingExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="4f95b1d9-8966-4d5a-9790-52c6b53723d9"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-NullCoalescingExpression-updateAssignments-result-upperValue"
                        xmi:uuid="139c4054-7a10-4d3c-9391-28c5281392a0"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NullCoalescingExpression-minLowerBound"
                xmi:uuid="20c03a35-3f26-479d-9a7d-a2c1d9cf9d51" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NullCoalescingExpression-minLowerBound-ownedComment"
                    xmi:uuid="f1a3b5fb-8d3c-4402-b5ed-f55b148cfac0" xmi:type="uml:Comment">
                    <body>The minimum lower bound of an operand of a null-coalescing expression is 0.
</body>
                    <annotatedElement xmi:idref="Alf-NullCoalescingExpression-minLowerBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NullCoalescingExpression-minLowerBound-result"
                    xmi:uuid="83101b89-17dd-49d5-a1be-441236f74b44" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>minLowerBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NullCoalescingExpression-maxUpperBound"
                xmi:uuid="78dc8835-8227-4fdc-8107-c93ba2e3ff8e" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NullCoalescingExpression-maxUpperBound-ownedComment"
                    xmi:uuid="098ded89-1ac2-4542-ba79-72299c1e580e" xmi:type="uml:Comment">
                    <body>The maximum upper bound of an operand of a null-coalescing expression is * (unbounded).
</body>
                    <annotatedElement xmi:idref="Alf-NullCoalescingExpression-maxUpperBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NullCoalescingExpression-maxUpperBound-result"
                    xmi:uuid="c1bbace0-01ac-4dbc-8df8-4e025ba48d1a" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>maxUpperBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>NullCoalescingExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-TemplateBinding"
            xmi:uuid="d287e217-91b6-41a4-84fb-95eea8d73245" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-TemplateBinding-ownedComment"
                xmi:uuid="2af7863c-dc47-4592-ac39-07bb80dcb61c" xmi:type="uml:Comment">
                <body>A list of type names used to provide arguments for the parameters of a template.
</body>
                <annotatedElement xmi:idref="Alf-TemplateBinding"/>
            </ownedComment>
            <generalization xmi:id="Alf-TemplateBinding-generalization"
                xmi:uuid="6667024c-9368-4e3c-a1c9-548cd588c698" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <name>TemplateBinding</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-IncrementOrDecrementExpression"
            xmi:uuid="450ff21b-f477-4eb1-acd1-c446df70ed78" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-ownedComment"
                xmi:uuid="6778522c-cbb0-43e8-ac67-3ec02ef50767" xmi:type="uml:Comment">
                <body>A unary expression with either an increment or decrement operator.
</body>
                <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation"
                xmi:uuid="3a232016-26cf-419b-bf5e-e66c77fa23b5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation-specification"
                    xmi:uuid="523e6b40-9a97-4392-adea-ff59ed1819e0" xmi:type="uml:OpaqueExpression">
                    <body>If the operand of an increment or decrement expression is a name, then the assignment for the expression is a new assigned source for the name with the expression as the source.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionAssignmentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation"
                xmi:uuid="3069129e-f873-4893-9c3b-a657fcecbb1b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation-specification"
                    xmi:uuid="b3afefed-0cde-406c-8a2f-53b61044bae8" xmi:type="uml:OpaqueExpression">
                    <body>An increment or decrement expression has a feature as its operand if the operand is a feature left-hand side or a name left-hand side for a name that disambiguates to a feature.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionIsFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation"
                xmi:uuid="9bf12aec-6e9e-4e7b-8fb4-49c07b6fb06e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation-specification"
                    xmi:uuid="0f01706a-0b29-48ea-9eb1-b16d653c053c" xmi:type="uml:OpaqueExpression">
                    <body>An increment or decrement expression is indexed if its operand is indexed.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionIsIndexedDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation"
                xmi:uuid="c12c2bc4-d6ed-43d4-af66-335e8157354b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation-specification"
                    xmi:uuid="2afd6c95-3fce-4867-b678-f917c44d3e01" xmi:type="uml:OpaqueExpression">
                    <body>An increment or decrement expression is a data value update if its operand is an attribute of a data value held in a local name or parameter.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionIsDataValueUpdateDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation"
                xmi:uuid="8003a35d-bb32-42a8-a662-149625e81967" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation-specification"
                    xmi:uuid="2ba104f2-71b3-4b97-b5d8-f29dfa39fced" xmi:type="uml:OpaqueExpression">
                    <body>If the operand of an increment or decrement expression is a feature, then the referent for the operand.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation"
                xmi:uuid="489c6730-23b9-4ab1-bd61-23948847ea69" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation-specification"
                    xmi:uuid="ddd0500d-51b4-4e3e-8b75-147d22d64360" xmi:type="uml:OpaqueExpression">
                    <body>The effective expression for the operand of an increment or decrement expression is the operand treated as a name expression, property access expression or sequence access expression, as appropriate for evaluation to obtain the original value to be updated.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionExpressionDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation"
                xmi:uuid="fdf73e87-0758-4bb5-aaef-f71e8b18d79e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation-specification"
                    xmi:uuid="1edf86bc-0132-4313-95c2-a39d6bbbc09a" xmi:type="uml:OpaqueExpression">
                    <body>If the operand of an increment or decrement expression is of a type that conforms to type Integer or Real, then the type of the expression is Integer or Real, respectively. Otherwise the expression has no type.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation"
                xmi:uuid="a0c4cb94-b6fd-45d5-8f96-f3e8f7b00313" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation-specification"
                    xmi:uuid="cf7a8a34-75e5-4b0a-b107-22d9e9521449" xmi:type="uml:OpaqueExpression">
                    <body>An increment or decrement expression has the same multiplicity lower bound as its operand expression.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionLowerDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation"
                xmi:uuid="d4878171-1c21-4d05-a699-ded2e0023b74" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation-specification"
                    xmi:uuid="7a97e851-3a76-4cc9-bfe5-39552094fdb1" xmi:type="uml:OpaqueExpression">
                    <body>An increment or decrement expression has a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionUpperDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand"
                xmi:uuid="00806f80-2987-46e7-aa61-c2cb3eb71ec3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand-specification"
                    xmi:uuid="8d99ea36-c90e-4093-a1bc-dae59ec63188" xmi:type="uml:OpaqueExpression">
                    <body>The operand expression must have a type that conforms to type Integer or Real and a multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionOperand</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore"
                xmi:uuid="da2e969e-23ac-4648-bc81-910d19327b34" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <specification
                    xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore-specification"
                    xmi:uuid="22f30e27-f3f5-4a94-8dbf-12f4e2736352" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the operand of an increment or decrement expression are the same as those before the increment or decrement expression.
</body>
                    <language>English</language>
                </specification>
                <name>incrementOrDecrementExpressionAssignmentsBefore</name>
            </ownedRule>
            <generalization xmi:id="Alf-IncrementOrDecrementExpression-generalization"
                xmi:uuid="6121d94c-774d-47ab-8c85-f6b95944a91d" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-assignment"
                xmi:uuid="a295012a-8101-4aac-b75f-5800c27d309e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-assignment-ownedComment"
                    xmi:uuid="787eeded-4b7b-4223-9401-7b4dfb96b3b1" xmi:type="uml:Comment">
                    <body>If the operand is a name, then the new assigned source for that name.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-assignment"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-IncrementOrDecrementExpression-assignment-lowerValue"
                    xmi:uuid="98e7b75a-99a8-43d2-a7ca-8027810953f9" xmi:type="uml:LiteralInteger"/>
                <name>assignment</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignment_incrementOrDecrementExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-operand"
                xmi:uuid="01985255-550f-4c94-b33f-6582ef6b2ef5" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-operand-ownedComment"
                    xmi:uuid="bd2067b9-fd66-4811-930e-f22d90adc52d" xmi:type="uml:Comment">
                    <body>The operand, which must have the form of an assignment left-hand side.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-operand"/>
                </ownedComment>
                <name>operand</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_operand_incrementOrDecrementExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-expression"
                xmi:uuid="91a11c8a-ecdc-4a1f-9234-e25d87ed6975" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-expression-ownedComment"
                    xmi:uuid="4188fb45-fdd1-4d31-a22c-0e44d99db8d1" xmi:type="uml:Comment">
                    <body>The effective expression used to obtain the original value of the operand to be updated.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_incrementOrDecrementExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-feature"
                xmi:uuid="63b434d6-f1cd-42f6-a662-056f5a152718" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-feature-ownedComment"
                    xmi:uuid="4a2db935-06db-43a6-8b58-6e21c351d147" xmi:type="uml:Comment">
                    <body>If the operand is a feature, then the referent for that feature.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-feature"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-IncrementOrDecrementExpression-feature-lowerValue"
                    xmi:uuid="333f9da8-d19d-4a4f-be78-a518f861c38d" xmi:type="uml:LiteralInteger"/>
                <name>feature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_feature_incrementOrDecrementExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isPrefix"
                xmi:uuid="3f69c236-a74e-4a02-a2fb-54fa9cda84b3" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isPrefix-ownedComment"
                    xmi:uuid="cc2a826b-66f1-4930-9580-e625c7424a59" xmi:type="uml:Comment">
                    <body>Whether the operator is being used as a prefix or a postfix.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isPrefix"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-IncrementOrDecrementExpression-isPrefix-defaultValue"
                    xmi:uuid="d426afde-69c5-47bc-b408-7bce487cf3fc" xmi:type="uml:LiteralBoolean"/>
                <name>isPrefix</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-operator"
                xmi:uuid="bc887572-4878-4bc4-9b97-1184384a1bb0" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-operator-ownedComment"
                    xmi:uuid="87bcb910-34c4-4c11-a5a4-2ab3cd723508" xmi:type="uml:Comment">
                    <body>The operator for this increment or decrement expression, either "++" for increment or "--" for decrement.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-operator"/>
                </ownedComment>
                <name>operator</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isFeature"
                xmi:uuid="0da27fb6-c98e-455e-bbcc-8e31b23171c8" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isFeature-ownedComment"
                    xmi:uuid="1dd55f53-5980-4b2e-bf01-bdcb62feb8d9" xmi:type="uml:Comment">
                    <body>Whether the operand is a feature or not.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isFeature"/>
                </ownedComment>
                <name>isFeature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isIndexed"
                xmi:uuid="4156874d-f310-489d-aeda-9601ddd05b0e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isIndexed-ownedComment"
                    xmi:uuid="c4f88e03-de9e-4597-8a75-9a592c1cd8c3" xmi:type="uml:Comment">
                    <body>If the operand is a feature, whether it has an index or not.
</body>
                    <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isIndexed"/>
                </ownedComment>
                <name>isIndexed</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isDataValueUpdate"
                xmi:uuid="245924d7-69ed-4f08-8ee4-967dc5789340" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-IncrementOrDecrementExpression-isDataValueUpdate-ownedComment"
                    xmi:uuid="7bdac997-bcdf-4cf3-b9bd-035677284537" xmi:type="uml:Comment">
                    <body>Whether this expression updates an attribute of a data value held in a local name or parameter.
</body>
                    <annotatedElement
                        xmi:idref="Alf-IncrementOrDecrementExpression-isDataValueUpdate"/>
                </ownedComment>
                <name>isDataValueUpdate</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments"
                xmi:uuid="691d1d15-c06b-4d25-92e1-a291532a81ab" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-ownedComment"
                    xmi:uuid="e19937d9-1bbc-4302-9798-4c564c7e40f0" xmi:type="uml:Comment">
                    <body>The assignments after an increment and decrement expression include all those after its operand expression. Further, if the operand expression, considered as a left hand side, is a local name, then this is reassigned.
</body>
                    <annotatedElement
                        xmi:idref="Alf-IncrementOrDecrementExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-result"
                    xmi:uuid="b556337b-c189-4efd-9a45-b20c21c001ea" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="c409f155-7870-4d26-8387-6846e6f40fbf"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-result-upperValue"
                        xmi:uuid="84ece689-af08-4a83-862e-98d25381aaae"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>IncrementOrDecrementExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-BinaryExpression"
            xmi:uuid="70c6a631-def9-4350-9b4d-5f14f559760a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BinaryExpression-ownedComment"
                xmi:uuid="452fb11e-4c22-42ef-89bf-6c815dcc39f1" xmi:type="uml:Comment">
                <body>An expression consisting of an operator acting on two operand expressions.
</body>
                <annotatedElement xmi:idref="Alf-BinaryExpression"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-BinaryExpression-binaryExpressionOperandMultiplicity"
                xmi:uuid="b6df3c96-d439-49d2-90ea-8bfd8bfea90d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BinaryExpression"/>
                <specification
                    xmi:id="Alf-BinaryExpression-binaryExpressionOperandMultiplicity-specification"
                    xmi:uuid="966360dd-2113-42cf-a023-900b0e645fe7" xmi:type="uml:OpaqueExpression">
                    <body>The operands of a binary expression must both have a multiplicity lower bound no less than that given by the minLowerBound helper operation. The operands of a binary expression must both have a multiplicity upper bound no greater than that given by the maxUpperBound helper operation.
</body>
                    <language>English</language>
                </specification>
                <name>binaryExpressionOperandMultiplicity</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BinaryExpression-binaryExpressionOperandAssignments"
                xmi:uuid="108b274c-0e70-4ab6-bffa-65e737a8bb1c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BinaryExpression"/>
                <specification
                    xmi:id="Alf-BinaryExpression-binaryExpressionOperandAssignments-specification"
                    xmi:uuid="8d095953-2c42-4203-b2af-6992ab24da81" xmi:type="uml:OpaqueExpression">
                    <body>The assignments in the operand expressions of a binary expression must be valid (as determined by the validateAssignments helper operation).
</body>
                    <language>English</language>
                </specification>
                <name>binaryExpressionOperandAssignments</name>
            </ownedRule>
            <generalization xmi:id="Alf-BinaryExpression-generalization"
                xmi:uuid="ce57610b-2b5e-462c-a859-1906693e3c30" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BinaryExpression-operand1"
                xmi:uuid="a1f1003b-1c23-4679-a000-ad335525700f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-BinaryExpression-operand1-ownedComment"
                    xmi:uuid="bfcc6628-3099-431c-9796-34ce46e8b668" xmi:type="uml:Comment">
                    <body>The expression giving the first operand.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-operand1"/>
                </ownedComment>
                <name>operand1</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_binaryExpression_operand1"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-BinaryExpression-operand2"
                xmi:uuid="7a0f65f4-8a0e-49e5-92a4-c0feffb2e960" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-BinaryExpression-operand2-ownedComment"
                    xmi:uuid="86c0b381-4163-4102-b76e-28ad8eb1c961" xmi:type="uml:Comment">
                    <body>The expression giving the second operand.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-operand2"/>
                </ownedComment>
                <name>operand2</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_binaryExpression_operand2"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-BinaryExpression-operator"
                xmi:uuid="7f64c728-7524-40af-8b59-fbd405322dda" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-BinaryExpression-operator-ownedComment"
                    xmi:uuid="01ad229e-2317-42af-9513-c6d4500616ef" xmi:type="uml:Comment">
                    <body>The symbol representing the operator.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-operator"/>
                </ownedComment>
                <name>operator</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-BinaryExpression-validateAssignments"
                xmi:uuid="0a9bc9e8-cee0-4684-bd48-62e6b4161452" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-BinaryExpression-validateAssignments-ownedComment"
                    xmi:uuid="6273019a-9401-4296-ad7a-ded83ccb1256" xmi:type="uml:Comment">
                    <body>In general the assignments before the operand expressions of a binary expression are the same as those before the binary expression and, if an assignment for a name is changed in one operand expression, then the assignment for that name may not change in the other operand expression. (This is overridden for conditional logical expressions.)
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-validateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BinaryExpression-validateAssignments-result"
                    xmi:uuid="e602b4ba-327c-4ec4-ae07-c933ba8fad15" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>validateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-BinaryExpression-updateAssignments"
                xmi:uuid="fffe6e6c-0407-41f0-b3a0-0b1fd0eee173" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment xmi:id="Alf-BinaryExpression-updateAssignments-ownedComment"
                    xmi:uuid="c85f5aec-a93c-4eae-9b99-bd8df0f52ed4" xmi:type="uml:Comment">
                    <body>The assignments after a binary expression include all the assignments before the expression that are not reassigned in either operand expression, plus the new assignments from each of the operand expressions.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-updateAssignments"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BinaryExpression-updateAssignments-result"
                    xmi:uuid="76395d86-4ebe-4fc8-9bbf-b59ce12a34a8" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-BinaryExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="65d42648-0215-4c45-abfb-20305ddbd93d"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-BinaryExpression-updateAssignments-result-upperValue"
                        xmi:uuid="edeeec2a-52f4-48f2-838e-113a2291ebbf"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-BinaryExpression-minLowerBound"
                xmi:uuid="f693b823-8475-4660-82de-9e462deff357" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-BinaryExpression-minLowerBound-ownedComment"
                    xmi:uuid="7409dd10-85aa-4dfe-bf64-4e05ee513561" xmi:type="uml:Comment">
                    <body>By default, the minimum allowed lower bound for an operand of a binary expression is 1.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-minLowerBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BinaryExpression-minLowerBound-result"
                    xmi:uuid="dedc355d-9473-4086-a8f0-abac23efd9a2" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>minLowerBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-BinaryExpression-maxUpperBound"
                xmi:uuid="7b449b47-09c8-4091-8558-6baad341b046" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-BinaryExpression-maxUpperBound-ownedComment"
                    xmi:uuid="f7fd4658-81fd-41f0-a485-5713556fb582" xmi:type="uml:Comment">
                    <body>By default, the maximum allowed upper bound for an operand of a binary expression is 1.
</body>
                    <annotatedElement xmi:idref="Alf-BinaryExpression-maxUpperBound"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BinaryExpression-maxUpperBound-result"
                    xmi:uuid="db3163d9-e026-45a8-9876-85816a29c145" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>maxUpperBound</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>BinaryExpression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-SequenceExpansionExpression"
            xmi:uuid="0ec0405d-aac4-4ff0-b573-ec1288fb6261" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SequenceExpansionExpression-ownedComment"
                xmi:uuid="70ac3d6b-5672-4377-9789-45ad7ec5e623" xmi:type="uml:Comment">
                <body>An expression used to carry out one of a predefined set of operations over each of the elements in a sequence.
</body>
                <annotatedElement xmi:idref="Alf-SequenceExpansionExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation"
                xmi:uuid="a0a7f829-a471-4582-b108-a74d0a8a1cca" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
                <specification
                    xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation-specification"
                    xmi:uuid="c55acdad-4f3b-41fa-9e64-e3b394aef7d2" xmi:type="uml:OpaqueExpression">
                    <body>The assigned source for the expansion variable of a sequence expansion expression is the expression itself. The type for the assignment is the type of the primary expression of the sequence expansion expression and the multiplicity lower and upper bounds are 1.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpansionExpressionVariableSourceDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary"
                xmi:uuid="0dcf505f-af56-45b2-8c24-bac9378556c7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
                <specification
                    xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary-specification"
                    xmi:uuid="9a18204f-9134-4770-99d5-c176cadff590" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the primary expression of a sequence expansion expression are the same as the assignments before the sequence expansion expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpansionExpressionAssignmentsBeforePrimary</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument"
                xmi:uuid="8f5d6ff4-3c65-4812-b47e-ab918b9de6dc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
                <specification
                    xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument-specification"
                    xmi:uuid="b4fd58ed-c07e-4ec7-884d-1455a85367b0" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the argument expression of a sequence expansion expression include those after the primary expression plus one for the expansion variable.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpansionExpressionAssignmentsBeforeArgument</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName"
                xmi:uuid="346c326d-b515-4dc9-b01d-31977ad6bd99" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
                <specification
                    xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName-specification"
                    xmi:uuid="f1899513-cbb7-47f5-9283-ab290ad169ac" xmi:type="uml:OpaqueExpression">
                    <body>The expansion variable name may not conflict with any name already assigned after the primary expression.
</body>
                </specification>
                <name>sequenceExpansionExpressionVariableName</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument"
                xmi:uuid="3178b222-dd71-4065-82f9-490050136414" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
                <specification
                    xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument-specification"
                    xmi:uuid="8ac67e3c-7777-41ab-94bb-2d975a58260c" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after the argument expression of a sequence expansion expression must be the same as the assignments before the argument expression.
</body>
                    <language>English</language>
                </specification>
                <name>sequenceExpansionExpressionAssignmentsAfterArgument</name>
            </ownedRule>
            <generalization xmi:id="Alf-SequenceExpansionExpression-generalization"
                xmi:uuid="b108dedb-d37b-4182-b442-6c5feda143d1" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Expression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-operation"
                xmi:uuid="d48fd820-92ea-4f07-9f12-732224332c10" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-SequenceExpansionExpression-operation-ownedComment"
                    xmi:uuid="76ccb847-54ff-40bf-96d0-e464b7a46b96" xmi:type="uml:Comment">
                    <body>The name of the operation to be carried out.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-operation"/>
                </ownedComment>
                <name>operation</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-variable"
                xmi:uuid="99220f42-93b8-408b-a3da-fdea0a1103ac" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-SequenceExpansionExpression-variable-ownedComment"
                    xmi:uuid="ac45de64-3da3-4f07-bba8-21dd6ce6a1c4" xmi:type="uml:Comment">
                    <body>The name of the expansion variable available as a local name within the argument expression.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-variable"/>
                </ownedComment>
                <name>variable</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-variableSource"
                xmi:uuid="81d11407-0748-410f-ae32-e562080d8fa0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceExpansionExpression-variableSource-ownedComment"
                    xmi:uuid="2b590b62-84c9-4698-9e00-cb45a6536a3f" xmi:type="uml:Comment">
                    <body>The assigned source for the expansion variable within the argument expression. The source is actually the sequence expansion expression itself.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-variableSource"/>
                </ownedComment>
                <name>variableSource</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_variableSource_sequenceExpansionExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-argument"
                xmi:uuid="bfdb2ff7-6251-4bc3-b7ee-4475120fc6f3" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceExpansionExpression-argument-ownedComment"
                    xmi:uuid="92517f7b-f852-4bd1-a844-e543b24feb08" xmi:type="uml:Comment">
                    <body>The argument expression. The exact form required for this expression depends on which expansion operation is being carried out.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-argument"/>
                </ownedComment>
                <name>argument</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_argument_sequenceExpansionExpression"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-primary"
                xmi:uuid="bcac2c3c-9968-42bf-8923-7e8f88cefade" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SequenceExpansionExpression-primary-ownedComment"
                    xmi:uuid="e9a76656-14d6-4022-995a-892768a6c8a3" xmi:type="uml:Comment">
                    <body>The class name or primary expression that evaluates to the sequence to be acted on.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-primary"/>
                </ownedComment>
                <name>primary</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceExpansionExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SequenceExpansionExpression-updateAssignments"
                xmi:uuid="d211deaf-2852-4599-a17f-f6f35d7ce5f9" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
                <ownedComment
                    xmi:id="Alf-SequenceExpansionExpression-updateAssignments-ownedComment"
                    xmi:uuid="4ac791a9-f69d-4a95-9fa0-8e2c68bc88d6" xmi:type="uml:Comment">
                    <body>The assignments after a sequence expansion expression are the same as after its primary expression.
</body>
                    <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-updateAssignments"
                    />
                </ownedComment>
                <ownedParameter xmi:id="Alf-SequenceExpansionExpression-updateAssignments-result"
                    xmi:uuid="5a60be56-c53b-4418-ba57-611693af6eee" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-SequenceExpansionExpression-updateAssignments-result-lowerValue"
                        xmi:uuid="75c1921c-4e66-4ba0-8768-d381d04cfa4c"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-SequenceExpansionExpression-updateAssignments-result-upperValue"
                        xmi:uuid="1c6c1321-8769-42ea-9e70-d3859e84ff40"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>updateAssignments</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SequenceExpansionExpression</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-InstanceCreationExpression"
            xmi:uuid="b3da9758-e932-4a3c-89ff-fa850d90d2f5" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-InstanceCreationExpression-ownedComment"
                xmi:uuid="44087c43-7e16-4182-8929-442fb7e60f36" xmi:type="uml:Comment">
                <body>An expression used to create a new instance of a class or data type.
</body>
                <annotatedElement xmi:idref="Alf-InstanceCreationExpression"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation"
                xmi:uuid="122ed38a-e948-4637-a837-5fc7b59b6f16" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation-specification"
                    xmi:uuid="f9cd83d4-5112-4729-8ba1-61f09b6f95b2" xmi:type="uml:OpaqueExpression">
                    <body>An instance creation expression is an object creation if its referent is not a data type.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionIsObjectCreationDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation"
                xmi:uuid="db62205f-84bc-48b7-b550-5fad92ad94ce" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation-specification"
                    xmi:uuid="e14ae2f7-1be4-425c-89ba-ef644406a2ea" xmi:type="uml:OpaqueExpression">
                    <body>An instance creation expression is constructorless if its referent is a class.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionIsConstructorlessDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation"
                xmi:uuid="f12eafb9-c25c-486f-8f12-6f4db998cc3c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation-specification"
                    xmi:uuid="16ed4e3e-a677-47c1-9f40-aa2f1183c57e" xmi:type="uml:OpaqueExpression">
                    <body>The referent of an instance creation expression is normally the constructor operation, class or data type to which the constructor name resolves. However, if the referent is an operation whose class is abstract or is a class that is itself abstract, and there is an associated Impl class constructor, then the referent is the Impl class constructor. Further, if the constructor name of an instance creation expression is empty, then the referent must be determined from the context of use of the expression.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionReferentDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation"
                xmi:uuid="2a5c79c6-3885-4123-8cd7-f498707b8ef7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation-specification"
                    xmi:uuid="29b5737f-4aca-4863-9f7a-46b9e0ab2d7d" xmi:type="uml:OpaqueExpression">
                    <body>There is no feature for an instance creation expression.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor"
                xmi:uuid="75490bbf-485e-4d95-b499-5074351b31a4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor-specification"
                    xmi:uuid="8f81eb3f-f749-4920-8c8e-bd2394eb0d95" xmi:type="uml:OpaqueExpression">
                    <body>The constructor name must resolve to a constructor operation (that is compatible with the tuple argument expressions), a class or a data type, but not both a class and a data type.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionConstructor</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality"
                xmi:uuid="a4f7ba56-c12f-47d7-88dc-4f67e073268a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality-specification"
                    xmi:uuid="6c132293-7f25-4342-b30a-a91f551a12a1" xmi:type="uml:OpaqueExpression">
                    <body>If the expression is constructorless, then its tuple must be empty and the referent class must not have any owned operations that are constructors.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionConstructorlessLegality</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility"
                xmi:uuid="5068e5c4-794c-4237-84c2-b76263b36534" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility-specification"
                    xmi:uuid="81f55b04-0d10-4921-adfd-eaeec7fa47fd" xmi:type="uml:OpaqueExpression">
                    <body>If an instance creation expression is a data value creation (not an object creation), then the tuple argument expressions are matched with the attributes of the named type.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionDataTypeCompatibility</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferent"
                xmi:uuid="ac195457-876b-452a-98d1-62d5dbd13682" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
                <specification
                    xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferent-specification"
                    xmi:uuid="f62067da-c7c1-48ef-abf5-e84ad5a33e13" xmi:type="uml:OpaqueExpression">
                    <body>If the referent of an instance creation expression is an operation, then the class of that operation must not be abstract. Otherwise, the referent is a class or data type, which must not be abstract.
</body>
                    <language>English</language>
                </specification>
                <name>instanceCreationExpressionReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-InstanceCreationExpression-generalization"
                xmi:uuid="6e3e4a4b-507a-428f-a800-300c12826597" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-InvocationExpression"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-InstanceCreationExpression-isConstructorless"
                xmi:uuid="fd17e950-bb1d-4c2b-b898-f57daac2fa41" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InstanceCreationExpression-isConstructorless-ownedComment"
                    xmi:uuid="ef07d9b8-33e1-481e-a874-4fda7f280547" xmi:type="uml:Comment">
                    <body>Whether this is a constructorless object creation expression.
</body>
                    <annotatedElement xmi:idref="Alf-InstanceCreationExpression-isConstructorless"/>
                </ownedComment>
                <name>isConstructorless</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InstanceCreationExpression-isObjectCreation"
                xmi:uuid="182e5572-3897-48b8-a31f-b67f7cb16c1b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-InstanceCreationExpression-isObjectCreation-ownedComment"
                    xmi:uuid="6377292b-d7f8-46f4-a299-927b90d31d79" xmi:type="uml:Comment">
                    <body>Whether this is an object creation expression or a data value creation expression.
</body>
                    <annotatedElement xmi:idref="Alf-InstanceCreationExpression-isObjectCreation"/>
                </ownedComment>
                <name>isObjectCreation</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InstanceCreationExpression-constructor"
                xmi:uuid="03faf2b9-90e7-4e37-835e-2774ea37841f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-InstanceCreationExpression-constructor-ownedComment"
                    xmi:uuid="f28a80c1-a067-4328-b761-63222a630380" xmi:type="uml:Comment">
                    <body>The name of the class constructor operation to be invoked or the name of a class or data type.
</body>
                    <annotatedElement xmi:idref="Alf-InstanceCreationExpression-constructor"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-InstanceCreationExpression-constructor-lowerValue"
                    xmi:uuid="efb774b1-7aeb-4d47-90ec-eb092dbb1c6d" xmi:type="uml:LiteralInteger"/>
                <name>constructor</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_constructor_instanceCreationExpression"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-InstanceCreationExpression-parameterElements"
                xmi:uuid="2bc247be-706c-4dfa-9f81-8f45df272980" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
                <ownedComment xmi:id="Alf-InstanceCreationExpression-parameterElements-ownedComment"
                    xmi:uuid="f3019233-7397-41c7-a2ce-67621f89e1d6" xmi:type="uml:Comment">
                    <body>Returns the parameters of a constructor operation or the attributes of a data type, or an empty set for a constructorless instance creation.
</body>
                    <annotatedElement xmi:idref="Alf-InstanceCreationExpression-parameterElements"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-InstanceCreationExpression-parameterElements-result"
                    xmi:uuid="bdd73640-d097-4edf-844e-2c5e1f20144c" xmi:type="uml:Parameter">
                    <lowerValue
                        xmi:id="Alf-InstanceCreationExpression-parameterElements-result-lowerValue"
                        xmi:uuid="765bd9e9-99f1-42b6-b124-29d0b925e973"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue
                        xmi:id="Alf-InstanceCreationExpression-parameterElements-result-upperValue"
                        xmi:uuid="38983034-a88a-48ab-b549-5666c0e9786c"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-ElementReference"/>
                </ownedParameter>
                <name>parameterElements</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>InstanceCreationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_expression"
            xmi:uuid="3f26d61a-1a13-43b8-80d6-72a4c82f0b18" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Expression-assignmentBefore"/>
            <memberEnd xmi:idref="Alf-A_assignmentBefore_expression-expression"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_expression-expression"
                xmi:uuid="c136c24a-453d-44aa-a031-033c484931a6" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentBefore_expression-expression-lowerValue"
                    xmi:uuid="bfa7a8c7-6641-4b49-8622-db1008c5ee3d" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentBefore_expression-expression-upperValue"
                    xmi:uuid="72884036-2a0e-49e0-ad36-e2e8fdf319ee"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>expression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_assignmentBefore_expression"/>
            </ownedEnd>
            <name>A_assignmentBefore_expression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_nameBinding_qualifiedName"
            xmi:uuid="d19c03c1-e48e-47bf-ab4a-8ffa8dca435f" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedName-nameBinding"/>
            <memberEnd xmi:idref="Alf-A_nameBinding_qualifiedName-qualifiedName"/>
            <ownedEnd xmi:id="Alf-A_nameBinding_qualifiedName-qualifiedName"
                xmi:uuid="8a92fd77-b122-4d47-94a4-dee3cf8026bd" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_nameBinding_qualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="45113095-3874-4328-9b80-bcf0eb6eba65" xmi:type="uml:LiteralInteger"/>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_nameBinding_qualifiedName"/>
            </ownedEnd>
            <name>A_nameBinding_qualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_assignmentExpression"
            xmi:uuid="8e21c397-c15a-4372-97b7-6cc44e52b5c6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignmentExpression-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_assignmentExpression-assignmentExpression"/>
            <ownedEnd xmi:id="Alf-A_expression_assignmentExpression-assignmentExpression"
                xmi:uuid="a4ce7fc0-68ce-4f01-a09e-c7141589adf6" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression_assignmentExpression-assignmentExpression-lowerValue"
                    xmi:uuid="eec58368-fc76-4d65-98d5-1e9ab9c8d8f2" xmi:type="uml:LiteralInteger"/>
                <name>assignmentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignmentExpression"/>
                <association xmi:idref="Alf-A_expression_assignmentExpression"/>
            </ownedEnd>
            <name>A_expression_assignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_extentOrExpression"
            xmi:uuid="7171afb3-acde-4663-b956-8d11dd111e88" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ExtentOrExpression-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_extentOrExpression-extentOrExpression"/>
            <ownedEnd xmi:id="Alf-A_expression_extentOrExpression-extentOrExpression"
                xmi:uuid="8a90ad67-0be0-4130-ab79-7c719c1e65d9" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression_extentOrExpression-extentOrExpression-lowerValue"
                    xmi:uuid="953bb5aa-9bc9-4fd6-903c-d7d0ca17552e" xmi:type="uml:LiteralInteger"/>
                <name>extentOrExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_expression_extentOrExpression"/>
            </ownedEnd>
            <name>A_expression_extentOrExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_classificationExpression"
            xmi:uuid="1e069a09-e881-4ac2-aadd-96fa874b7928" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassificationExpression-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_classificationExpression-classificationExpression"/>
            <ownedEnd xmi:id="Alf-A_referent_classificationExpression-classificationExpression"
                xmi:uuid="2baf91bc-05af-405f-9288-4b376cd33858" xmi:type="uml:Property">
                <name>classificationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassificationExpression"/>
                <association xmi:idref="Alf-A_referent_classificationExpression"/>
            </ownedEnd>
            <name>A_referent_classificationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_sequenceReductionExpression"
            xmi:uuid="5ff7727c-e6eb-4cff-88f6-39c37cbb76ab" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceReductionExpression-referent"/>
            <memberEnd
                xmi:idref="Alf-A_referent_sequenceReductionExpression-sequenceReductionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_referent_sequenceReductionExpression-sequenceReductionExpression"
                xmi:uuid="af7dd443-6025-415b-8b65-5859b46b809c" xmi:type="uml:Property">
                <name>sequenceReductionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceReductionExpression"/>
                <association xmi:idref="Alf-A_referent_sequenceReductionExpression"/>
            </ownedEnd>
            <name>A_referent_sequenceReductionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand1_conditionalTestExpression"
            xmi:uuid="5783f21f-f492-4e29-a753-4f46832a2d29" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ConditionalTestExpression-operand1"/>
            <memberEnd
                xmi:idref="Alf-A_operand1_conditionalTestExpression-conditionalTestExpression"/>
            <ownedEnd xmi:id="Alf-A_operand1_conditionalTestExpression-conditionalTestExpression"
                xmi:uuid="4de9d698-ae18-4fde-9a07-d6f5c789add8" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_operand1_conditionalTestExpression-conditionalTestExpression-lowerValue"
                    xmi:uuid="7fa9f539-f21a-4b97-86f1-83fef8ab37d5" xmi:type="uml:LiteralInteger"/>
                <name>conditionalTestExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ConditionalTestExpression"/>
                <association xmi:idref="Alf-A_operand1_conditionalTestExpression"/>
            </ownedEnd>
            <name>A_operand1_conditionalTestExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_elements_sequenceConstructionExpression"
            xmi:uuid="ca344606-718e-40ef-bb74-e078ba466a34" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceConstructionExpression-elements"/>
            <memberEnd
                xmi:idref="Alf-A_elements_sequenceConstructionExpression-sequenceConstructionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_elements_sequenceConstructionExpression-sequenceConstructionExpression"
                xmi:uuid="ee616f33-cf0c-481d-bd51-bbb7b79dfd41" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_elements_sequenceConstructionExpression-sequenceConstructionExpression-lowerValue"
                    xmi:uuid="9be03bf5-6799-4afc-9933-91b075b51337" xmi:type="uml:LiteralInteger"/>
                <name>sequenceConstructionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceConstructionExpression"/>
                <association xmi:idref="Alf-A_elements_sequenceConstructionExpression"/>
            </ownedEnd>
            <name>A_elements_sequenceConstructionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_rangeUpper_sequenceRange"
            xmi:uuid="fa974d35-f9f7-4714-b647-6a029a646025" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceRange-rangeUpper"/>
            <memberEnd xmi:idref="Alf-A_rangeUpper_sequenceRange-sequenceRange"/>
            <ownedEnd xmi:id="Alf-A_rangeUpper_sequenceRange-sequenceRange"
                xmi:uuid="0f49895a-7226-4788-a44d-5a1b2b1907be" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_rangeUpper_sequenceRange-sequenceRange-lowerValue"
                    xmi:uuid="558fc8ea-fea9-4c13-bfdd-cc8a5b9b670c" xmi:type="uml:LiteralInteger"/>
                <name>sequenceRange</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceRange"/>
                <association xmi:idref="Alf-A_rangeUpper_sequenceRange"/>
            </ownedEnd>
            <name>A_rangeUpper_sequenceRange</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_target_behaviorInvocationExpression"
            xmi:uuid="2976c225-3f5b-4a3f-a5ae-b19d17994077" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-BehaviorInvocationExpression-target"/>
            <memberEnd
                xmi:idref="Alf-A_target_behaviorInvocationExpression-behaviorInvocationExpression"/>
            <ownedEnd
                xmi:id="Alf-A_target_behaviorInvocationExpression-behaviorInvocationExpression"
                xmi:uuid="f701d074-6ca2-4b79-b4b2-aa72f995cc62" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_target_behaviorInvocationExpression-behaviorInvocationExpression-lowerValue"
                    xmi:uuid="68e936c3-e423-4042-b78e-b5d948592d7d" xmi:type="uml:LiteralInteger"/>
                <name>behaviorInvocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-BehaviorInvocationExpression"/>
                <association xmi:idref="Alf-A_target_behaviorInvocationExpression"/>
            </ownedEnd>
            <name>A_target_behaviorInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_argument_sequenceExpansionExpression"
            xmi:uuid="6e9eb4a0-c6aa-44e2-981d-0e6747de75dc" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceExpansionExpression-argument"/>
            <memberEnd
                xmi:idref="Alf-A_argument_sequenceExpansionExpression-sequenceExpansionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_argument_sequenceExpansionExpression-sequenceExpansionExpression"
                xmi:uuid="af7b05ff-bb5b-49ac-997c-681f04f5fc7c" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_argument_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue"
                    xmi:uuid="9ded632d-4e02-4419-9eba-2a20a176bba6" xmi:type="uml:LiteralInteger"/>
                <name>sequenceExpansionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceExpansionExpression"/>
                <association xmi:idref="Alf-A_argument_sequenceExpansionExpression"/>
            </ownedEnd>
            <name>A_argument_sequenceExpansionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_incrementOrDecrementExpression"
            xmi:uuid="81a37b30-d5cb-47eb-9766-4e6442a07683" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IncrementOrDecrementExpression-expression"/>
            <memberEnd
                xmi:idref="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression"/>
            <ownedEnd
                xmi:id="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression"
                xmi:uuid="ee6c3a36-1afb-4e6a-8f03-be07561b95d3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue"
                    xmi:uuid="4fa70783-7c88-4934-b938-ddb35d9917bf" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue"
                    xmi:uuid="d5f19cf6-91ab-4d5d-82f8-4fc1827d116f"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>incrementOrDecrementExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <association xmi:idref="Alf-A_expression_incrementOrDecrementExpression"/>
            </ownedEnd>
            <name>A_expression_incrementOrDecrementExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_index_sequenceAccessExpression"
            xmi:uuid="c3bc682a-7f92-4ddd-9b54-cc6cab375a40" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceAccessExpression-index"/>
            <memberEnd xmi:idref="Alf-A_index_sequenceAccessExpression-sequenceAccessExpression"/>
            <ownedEnd xmi:id="Alf-A_index_sequenceAccessExpression-sequenceAccessExpression"
                xmi:uuid="9c803301-ac2c-4a63-af2b-cd53e07e7491" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_index_sequenceAccessExpression-sequenceAccessExpression-lowerValue"
                    xmi:uuid="1934228b-297c-4929-b4b8-151dbb5b1ca4" xmi:type="uml:LiteralInteger"/>
                <name>sequenceAccessExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceAccessExpression"/>
                <association xmi:idref="Alf-A_index_sequenceAccessExpression"/>
            </ownedEnd>
            <name>A_index_sequenceAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_featureReference_propertyAccessExpression"
            xmi:uuid="8fd2e43b-04e1-447d-9e9a-d814fa940dc6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PropertyAccessExpression-featureReference"/>
            <memberEnd
                xmi:idref="Alf-A_featureReference_propertyAccessExpression-propertyAccessExpression"/>
            <ownedEnd
                xmi:id="Alf-A_featureReference_propertyAccessExpression-propertyAccessExpression"
                xmi:uuid="3abf7458-d049-45c8-b394-8b45430624f3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_featureReference_propertyAccessExpression-propertyAccessExpression-lowerValue"
                    xmi:uuid="a3da8eb8-82ae-4396-9b19-3efefb23b107" xmi:type="uml:LiteralInteger"/>
                <name>propertyAccessExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PropertyAccessExpression"/>
                <association xmi:idref="Alf-A_featureReference_propertyAccessExpression"/>
            </ownedEnd>
            <name>A_featureReference_propertyAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_nonNameExpression_extentOrExpression"
            xmi:uuid="30996bca-f38b-4297-813c-0ca46ca31f95" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ExtentOrExpression-nonNameExpression"/>
            <memberEnd xmi:idref="Alf-A_nonNameExpression_extentOrExpression-extentOrExpression"/>
            <ownedEnd xmi:id="Alf-A_nonNameExpression_extentOrExpression-extentOrExpression"
                xmi:uuid="1c3c69af-cfed-4c19-bba4-f7ae97ff9de5" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_nonNameExpression_extentOrExpression-extentOrExpression-lowerValue"
                    xmi:uuid="9182958b-039f-496b-88f2-ad8e5b02a731" xmi:type="uml:LiteralInteger"/>
                <name>extentOrExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_nonNameExpression_extentOrExpression"/>
            </ownedEnd>
            <name>A_nonNameExpression_extentOrExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_leftHandSide_sequenceOperationExpression"
            xmi:uuid="11f1a6ea-c8be-4937-941f-f4ce150602f1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceOperationExpression-leftHandSide"/>
            <memberEnd
                xmi:idref="Alf-A_leftHandSide_sequenceOperationExpression-sequenceOperationExpression"/>
            <ownedEnd
                xmi:id="Alf-A_leftHandSide_sequenceOperationExpression-sequenceOperationExpression"
                xmi:uuid="5003566c-c4ef-44c9-86a8-c946c492ec18" xmi:type="uml:Property">
                <name>sequenceOperationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceOperationExpression"/>
                <association xmi:idref="Alf-A_leftHandSide_sequenceOperationExpression"/>
            </ownedEnd>
            <name>A_leftHandSide_sequenceOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_rangeLower_sequenceRange"
            xmi:uuid="9e64bb5e-aec3-4353-8e90-8bd732f22745" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceRange-rangeLower"/>
            <memberEnd xmi:idref="Alf-A_rangeLower_sequenceRange-sequenceRange"/>
            <ownedEnd xmi:id="Alf-A_rangeLower_sequenceRange-sequenceRange"
                xmi:uuid="0a336a68-2819-40a3-a24f-453c678675c2" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_rangeLower_sequenceRange-sequenceRange-lowerValue"
                    xmi:uuid="e42357df-2602-4808-bf23-74c34652060b" xmi:type="uml:LiteralInteger"/>
                <name>sequenceRange</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceRange"/>
                <association xmi:idref="Alf-A_rangeLower_sequenceRange"/>
            </ownedEnd>
            <name>A_rangeLower_sequenceRange</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_qualification_qualifiedName"
            xmi:uuid="1234914f-61fa-4de7-864b-dcfbd5bbeb15" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedName-qualification"/>
            <memberEnd xmi:idref="Alf-A_qualification_qualifiedName-qualifiedName"/>
            <ownedEnd xmi:id="Alf-A_qualification_qualifiedName-qualifiedName"
                xmi:uuid="e0eca677-3684-4a9b-8ac9-ed98327a0437" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_qualification_qualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="ca0404ab-944c-4c2a-8617-88e46cbb3b8e" xmi:type="uml:LiteralInteger"/>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_qualification_qualifiedName"/>
            </ownedEnd>
            <name>A_qualification_qualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand_castExpression"
            xmi:uuid="d0e539cd-7f75-4b03-bc96-e2549ee90900" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-CastExpression-operand"/>
            <memberEnd xmi:idref="Alf-A_operand_castExpression-castExpression"/>
            <ownedEnd xmi:id="Alf-A_operand_castExpression-castExpression"
                xmi:uuid="ef2d7db4-0625-4e3a-b43d-dde15ca86329" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_operand_castExpression-castExpression-lowerValue"
                    xmi:uuid="2b952f2f-e602-45e7-bacc-a5581533294f" xmi:type="uml:LiteralInteger"/>
                <name>castExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-CastExpression"/>
                <association xmi:idref="Alf-A_operand_castExpression"/>
            </ownedEnd>
            <name>A_operand_castExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_invocationExpression"
            xmi:uuid="def4457d-62f4-4dc5-a97c-dde9884a1210" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InvocationExpression-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_invocationExpression-invocationExpression"/>
            <ownedEnd xmi:id="Alf-A_referent_invocationExpression-invocationExpression"
                xmi:uuid="c7cc0306-f2b8-4b41-b17d-792b16e4652a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_referent_invocationExpression-invocationExpression-lowerValue"
                    xmi:uuid="7849e7d2-bb4c-4e2e-8a63-1361a928a7fe" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_referent_invocationExpression-invocationExpression-upperValue"
                    xmi:uuid="96057542-effd-404f-a4d3-29731b5e487b"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>invocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InvocationExpression"/>
                <association xmi:idref="Alf-A_referent_invocationExpression"/>
            </ownedEnd>
            <name>A_referent_invocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_binaryExpression_operand1"
            xmi:uuid="e181049a-cb13-4a7a-98c4-ca77df836f21" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-A_binaryExpression_operand1-binaryExpression"/>
            <memberEnd xmi:idref="Alf-BinaryExpression-operand1"/>
            <ownedEnd xmi:id="Alf-A_binaryExpression_operand1-binaryExpression"
                xmi:uuid="ae64b9aa-d17d-4abf-8c60-5872104ba572" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_binaryExpression_operand1-binaryExpression-lowerValue"
                    xmi:uuid="b302296c-b7a8-4901-a3a1-b4d5c0983dbd" xmi:type="uml:LiteralInteger"/>
                <name>binaryExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-BinaryExpression"/>
                <association xmi:idref="Alf-A_binaryExpression_operand1"/>
            </ownedEnd>
            <name>A_binaryExpression_operand1</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_featureReference"
            xmi:uuid="1c3efcab-759d-4a59-8caf-91d500c6f517" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-FeatureReference-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_featureReference-featureReference"/>
            <ownedEnd xmi:id="Alf-A_expression_featureReference-featureReference"
                xmi:uuid="6b5608a6-76e7-40ad-9934-de5ed450ab47" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_featureReference-featureReference-lowerValue"
                    xmi:uuid="2f2bf832-69c7-41a0-8f36-43353b3c888b" xmi:type="uml:LiteralInteger"/>
                <name>featureReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_expression_featureReference"/>
            </ownedEnd>
            <name>A_expression_featureReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_propertyAccess_nameExpression"
            xmi:uuid="d4e87b9d-5a0c-4cc3-b1cb-69465c6725b1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameExpression-propertyAccess"/>
            <memberEnd xmi:idref="Alf-A_propertyAccess_nameExpression-nameExpression"/>
            <ownedEnd xmi:id="Alf-A_propertyAccess_nameExpression-nameExpression"
                xmi:uuid="ea900185-904f-418e-8dbd-72da480693ea" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_propertyAccess_nameExpression-nameExpression-lowerValue"
                    xmi:uuid="d0e211f8-1b3a-4246-b6c1-3f34546b5a28" xmi:type="uml:LiteralInteger"/>
                <name>nameExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameExpression"/>
                <association xmi:idref="Alf-A_propertyAccess_nameExpression"/>
            </ownedEnd>
            <name>A_propertyAccess_nameExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_target_superInvocationExpression"
            xmi:uuid="8833c884-bff1-47ba-81b3-c4a627363f06" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SuperInvocationExpression-target"/>
            <memberEnd xmi:idref="Alf-A_target_superInvocationExpression-superInvocationExpression"/>
            <ownedEnd xmi:id="Alf-A_target_superInvocationExpression-superInvocationExpression"
                xmi:uuid="2d1423cd-1ba5-4ef5-8e22-833c84a2c94d" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_target_superInvocationExpression-superInvocationExpression-lowerValue"
                    xmi:uuid="6eb3084e-d463-4b2f-92cc-91ae2e995e9e" xmi:type="uml:LiteralInteger"/>
                <name>superInvocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SuperInvocationExpression"/>
                <association xmi:idref="Alf-A_target_superInvocationExpression"/>
            </ownedEnd>
            <name>A_target_superInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand_unaryExpression"
            xmi:uuid="71fb4390-348b-4e10-a082-841362126120" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnaryExpression-operand"/>
            <memberEnd xmi:idref="Alf-A_operand_unaryExpression-unaryExpression"/>
            <ownedEnd xmi:id="Alf-A_operand_unaryExpression-unaryExpression"
                xmi:uuid="f22fe2f7-2f19-4d48-9e04-19e1a4a0d9aa" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_operand_unaryExpression-unaryExpression-lowerValue"
                    xmi:uuid="7736751f-88de-4f21-9cb7-ce61c4531361" xmi:type="uml:LiteralInteger"/>
                <name>unaryExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnaryExpression"/>
                <association xmi:idref="Alf-A_operand_unaryExpression"/>
            </ownedEnd>
            <name>A_operand_unaryExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_substitution_namedTemplateBinding"
            xmi:uuid="23332ad8-c6a7-47ba-952a-02332e23b496" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamedTemplateBinding-substitution"/>
            <memberEnd xmi:idref="Alf-A_substitution_namedTemplateBinding-namedTemplateBinding"/>
            <ownedEnd xmi:id="Alf-A_substitution_namedTemplateBinding-namedTemplateBinding"
                xmi:uuid="96327586-a0cc-46ec-8d06-0c17244ef515" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_substitution_namedTemplateBinding-namedTemplateBinding-lowerValue"
                    xmi:uuid="29a9696d-8108-46a1-8e1f-db05821be2e5" xmi:type="uml:LiteralInteger"/>
                <name>namedTemplateBinding</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamedTemplateBinding"/>
                <association xmi:idref="Alf-A_substitution_namedTemplateBinding"/>
            </ownedEnd>
            <name>A_substitution_namedTemplateBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_enumerationLiteral_nameExpression"
            xmi:uuid="eeee142d-0692-43d0-812a-2fe04d0ba423" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameExpression-enumerationLiteral"/>
            <memberEnd xmi:idref="Alf-A_enumerationLiteral_nameExpression-nameExpression"/>
            <ownedEnd xmi:id="Alf-A_enumerationLiteral_nameExpression-nameExpression"
                xmi:uuid="8d303d3a-9733-4904-a17e-aa5962816d7a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_enumerationLiteral_nameExpression-nameExpression-lowerValue"
                    xmi:uuid="2f3edcf3-6b4a-4de2-acd8-a111a33d6241" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_enumerationLiteral_nameExpression-nameExpression-upperValue"
                    xmi:uuid="bf8ab61d-881b-4a05-b3c4-bc74e0e5c243"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>nameExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameExpression"/>
                <association xmi:idref="Alf-A_enumerationLiteral_nameExpression"/>
            </ownedEnd>
            <name>A_enumerationLiteral_nameExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_element_SequenceExpansionList"
            xmi:uuid="6b3169de-504c-4829-ba83-8b4f8ca22be5" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceExpressionList-element"/>
            <memberEnd xmi:idref="Alf-A_element_SequenceExpansionList-sequenceExpansionList"/>
            <ownedEnd xmi:id="Alf-A_element_SequenceExpansionList-sequenceExpansionList"
                xmi:uuid="6ae1af53-4f1b-4464-a2ac-2b5dceeccfa3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_element_SequenceExpansionList-sequenceExpansionList-lowerValue"
                    xmi:uuid="d7796876-2922-467b-94f8-43344e73352d" xmi:type="uml:LiteralInteger"/>
                <name>sequenceExpansionList</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceExpressionList"/>
                <association xmi:idref="Alf-A_element_SequenceExpansionList"/>
            </ownedEnd>
            <name>A_element_SequenceExpansionList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_castExpression"
            xmi:uuid="ee97725a-2280-436e-a0bb-1384cfff61d9" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-CastExpression-typeName"/>
            <memberEnd xmi:idref="Alf-A_typeName_castExpression-castExpression"/>
            <ownedEnd xmi:id="Alf-A_typeName_castExpression-castExpression"
                xmi:uuid="d90891a0-200d-4200-8fe6-bdede2081d1f" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_typeName_castExpression-castExpression-lowerValue"
                    xmi:uuid="d2d3a765-e14a-418e-9481-662f08c37ea3" xmi:type="uml:LiteralInteger"/>
                <name>castExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-CastExpression"/>
                <association xmi:idref="Alf-A_typeName_castExpression"/>
            </ownedEnd>
            <name>A_typeName_castExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand3_conditionalTestExpression"
            xmi:uuid="b4c41426-f51f-4a31-8c79-68eda508578b" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ConditionalTestExpression-operand3"/>
            <memberEnd
                xmi:idref="Alf-A_operand3_conditionalTestExpression-conditionalTestExpression"/>
            <ownedEnd xmi:id="Alf-A_operand3_conditionalTestExpression-conditionalTestExpression"
                xmi:uuid="237497f6-d098-4c7f-bb03-6e21741e7d89" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_operand3_conditionalTestExpression-conditionalTestExpression-lowerValue"
                    xmi:uuid="76a1a574-6a3e-41f8-9d36-97332e739398" xmi:type="uml:LiteralInteger"/>
                <name>conditionalTestExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ConditionalTestExpression"/>
                <association xmi:idref="Alf-A_operand3_conditionalTestExpression"/>
            </ownedEnd>
            <name>A_operand3_conditionalTestExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_feature_invocationExpression"
            xmi:uuid="6e5ae376-b574-491b-8a5d-4edd9a9dbc15" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InvocationExpression-feature"/>
            <memberEnd xmi:idref="Alf-A_feature_invocationExpression-invocationExpression"/>
            <ownedEnd xmi:id="Alf-A_feature_invocationExpression-invocationExpression"
                xmi:uuid="6c3bdc39-636c-4518-8f2c-0e0ea47eba0e" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_feature_invocationExpression-invocationExpression-lowerValue"
                    xmi:uuid="e6f2e7bc-79ad-43e7-a115-11a8025b8b45" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_feature_invocationExpression-invocationExpression-upperValue"
                    xmi:uuid="89a3f248-0747-4316-af55-7266abc961e0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>invocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InvocationExpression"/>
                <association xmi:idref="Alf-A_feature_invocationExpression"/>
            </ownedEnd>
            <name>A_feature_invocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand2_conditionalTestExpression"
            xmi:uuid="cbb6d168-f57b-4aee-914c-94171d085f4c" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ConditionalTestExpression-operand2"/>
            <memberEnd
                xmi:idref="Alf-A_operand2_conditionalTestExpression-conditionalTestExpression"/>
            <ownedEnd xmi:id="Alf-A_operand2_conditionalTestExpression-conditionalTestExpression"
                xmi:uuid="c98d7da2-567c-4a6c-a929-6b48aef24189" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_operand2_conditionalTestExpression-conditionalTestExpression-lowerValue"
                    xmi:uuid="974eb65a-8573-4f67-872d-a71abcd7c65c" xmi:type="uml:LiteralInteger"/>
                <name>conditionalTestExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ConditionalTestExpression"/>
                <association xmi:idref="Alf-A_operand2_conditionalTestExpression"/>
            </ownedEnd>
            <name>A_operand2_conditionalTestExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_argumentName_positionalTemplateBinding"
            xmi:uuid="2a3e4a98-0a01-4003-90ca-1843ffcd6a97" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PositionalTemplateBinding-argumentName"/>
            <memberEnd
                xmi:idref="Alf-A_argumentName_positionalTemplateBinding-positionalTemplateBinding"/>
            <ownedEnd
                xmi:id="Alf-A_argumentName_positionalTemplateBinding-positionalTemplateBinding"
                xmi:uuid="c5c3706e-f949-4514-93b5-4ad40d6ad8b2" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_argumentName_positionalTemplateBinding-positionalTemplateBinding-lowerValue"
                    xmi:uuid="39f0815b-6b0d-4e64-904c-465334af3ced" xmi:type="uml:LiteralInteger"/>
                <name>positionalTemplateBinding</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PositionalTemplateBinding"/>
                <association xmi:idref="Alf-A_argumentName_positionalTemplateBinding"/>
            </ownedEnd>
            <name>A_argumentName_positionalTemplateBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_tuple_invocation"
            xmi:uuid="e060274e-69d6-483b-a85e-c07fa7831548" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InvocationExpression-tuple"/>
            <memberEnd xmi:idref="Alf-Tuple-invocation"/>
            <name>A_tuple_invocation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignment_nameExpression"
            xmi:uuid="6395758b-0868-42f2-bb4b-8053359deedc" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameExpression-assignment"/>
            <memberEnd xmi:idref="Alf-A_assignment_nameExpression-nameExpression"/>
            <ownedEnd xmi:id="Alf-A_assignment_nameExpression-nameExpression"
                xmi:uuid="d985ba25-094e-49f9-ba7f-3b95173ad26b" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignment_nameExpression-nameExpression-lowerValue"
                    xmi:uuid="8edf78a3-e4f4-4fbc-969e-ba5b66b7a22a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignment_nameExpression-nameExpression-upperValue"
                    xmi:uuid="2da1d639-58cc-4673-8fe8-2200d2b19511"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>nameExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameExpression"/>
                <association xmi:idref="Alf-A_assignment_nameExpression"/>
            </ownedEnd>
            <name>A_assignment_nameExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_disambiguation_qualifiedName"
            xmi:uuid="3dcf0a2f-be5b-41b9-ba67-8d33b039b374" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedName-disambiguation"/>
            <memberEnd xmi:idref="Alf-A_disambiguation_qualifiedName-qualifiedName"/>
            <ownedEnd xmi:id="Alf-A_disambiguation_qualifiedName-qualifiedName"
                xmi:uuid="d9697e5e-1974-4c63-b046-372529fc3865" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_disambiguation_qualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="cbaad602-1138-45b7-9e4b-c52e9512103b" xmi:type="uml:LiteralInteger"/>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_disambiguation_qualifiedName"/>
            </ownedEnd>
            <name>A_disambiguation_qualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_namedExpression"
            xmi:uuid="4a9b23a5-6fb6-4fb3-826c-3c87e13eb446" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamedExpression-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_namedExpression-namedExpression"/>
            <ownedEnd xmi:id="Alf-A_expression_namedExpression-namedExpression"
                xmi:uuid="52e5df55-774c-4d3a-8379-fb71652a2a6d" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_namedExpression-namedExpression-lowerValue"
                    xmi:uuid="e52a4756-f372-4083-b525-08b11a20badf" xmi:type="uml:LiteralInteger"/>
                <name>namedExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamedExpression"/>
                <association xmi:idref="Alf-A_expression_namedExpression"/>
            </ownedEnd>
            <name>A_expression_namedExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_leftHandSide_outputNamedExpression"
            xmi:uuid="e5a69911-6aed-4ba1-92d2-0811c697ce2d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-OutputNamedExpression-leftHandSide"/>
            <memberEnd xmi:idref="Alf-A_leftHandSide_outputNamedExpression-outputNamedExpression"/>
            <ownedEnd xmi:id="Alf-A_leftHandSide_outputNamedExpression-outputNamedExpression"
                xmi:uuid="8deb9479-4898-4d20-af7e-685d1a58b820" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_leftHandSide_outputNamedExpression-outputNamedExpression-lowerValue"
                    xmi:uuid="8b724f7c-06af-440e-a34b-1dabbfaed738" xmi:type="uml:LiteralInteger"/>
                <name>outputNamedExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-OutputNamedExpression"/>
                <association xmi:idref="Alf-A_leftHandSide_outputNamedExpression"/>
            </ownedEnd>
            <name>A_leftHandSide_outputNamedExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_rightHandSide_assignmentExpression"
            xmi:uuid="47a4cfce-d8ae-49ae-ad21-ee6df3e3f3f6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignmentExpression-rightHandSide"/>
            <memberEnd xmi:idref="Alf-A_rightHandSide_assignmentExpression-assignmentExpression"/>
            <ownedEnd xmi:id="Alf-A_rightHandSide_assignmentExpression-assignmentExpression"
                xmi:uuid="af3184a5-dae7-433c-8091-79968f1c0ede" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_rightHandSide_assignmentExpression-assignmentExpression-lowerValue"
                    xmi:uuid="c29b56e2-c591-4132-be53-58bdfa27a0e2" xmi:type="uml:LiteralInteger"/>
                <name>assignmentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignmentExpression"/>
                <association xmi:idref="Alf-A_rightHandSide_assignmentExpression"/>
            </ownedEnd>
            <name>A_rightHandSide_assignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_primary_sequenceAccessExpression"
            xmi:uuid="c51ac5ea-a494-4098-9460-ccdeb4a3475b" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceAccessExpression-primary"/>
            <memberEnd xmi:idref="Alf-A_primary_sequenceAccessExpression-sequenceAccessExpression"/>
            <ownedEnd xmi:id="Alf-A_primary_sequenceAccessExpression-sequenceAccessExpression"
                xmi:uuid="9fa8d9f6-9564-4011-b97a-d92be3dd06d2" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_primary_sequenceAccessExpression-sequenceAccessExpression-lowerValue"
                    xmi:uuid="93426e86-595a-4e87-b577-fd4fb4d379a3" xmi:type="uml:LiteralInteger"/>
                <name>sequenceAccessExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceAccessExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceAccessExpression"/>
            </ownedEnd>
            <name>A_primary_sequenceAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_qualifiedName"
            xmi:uuid="fb9ccbd4-8a44-4897-9799-45105e7a4202" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedName-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_qualifiedName-qualifiedName"/>
            <ownedEnd xmi:id="Alf-A_referent_qualifiedName-qualifiedName"
                xmi:uuid="93f29795-6566-4936-8564-d07d581e0ebf" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_referent_qualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="465d9c53-ec0b-47e7-bcf7-8fcc493f2de4" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_referent_qualifiedName-qualifiedName-upperValue"
                    xmi:uuid="e4e42dd3-f7ec-4acd-8615-b9edfe022454"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_referent_qualifiedName"/>
            </ownedEnd>
            <name>A_referent_qualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_primary_sequenceOperationExpression"
            xmi:uuid="27784889-40fb-45c3-b6fa-ad787e2780db" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceOperationExpression-primary"/>
            <memberEnd
                xmi:idref="Alf-A_primary_sequenceOperationExpression-sequenceOperationExpression"/>
            <ownedEnd xmi:id="Alf-A_primary_sequenceOperationExpression-sequenceOperationExpression"
                xmi:uuid="9d1f0d5a-dc32-4f31-90ad-5fb8a13beee3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_primary_sequenceOperationExpression-sequenceOperationExpression-lowerValue"
                    xmi:uuid="f3a2eead-324b-46fd-a58a-5091935655b3" xmi:type="uml:LiteralInteger"/>
                <name>sequenceOperationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceOperationExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceOperationExpression"/>
            </ownedEnd>
            <name>A_primary_sequenceOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_binding_nameBinding"
            xmi:uuid="e2e6fdf9-2cfc-4945-995f-9593700e51c6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameBinding-binding"/>
            <memberEnd xmi:idref="Alf-A_binding_nameBinding-nameBinding"/>
            <ownedEnd xmi:id="Alf-A_binding_nameBinding-nameBinding"
                xmi:uuid="e023ffbd-d4b0-4b97-acca-2f7c4eab2d8b" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_binding_nameBinding-nameBinding-lowerValue"
                    xmi:uuid="e6d50b53-e787-436d-b8e6-20451c9bc1f7" xmi:type="uml:LiteralInteger"/>
                <name>nameBinding</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameBinding"/>
                <association xmi:idref="Alf-A_binding_nameBinding"/>
            </ownedEnd>
            <name>A_binding_nameBinding</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_className_classExtentExpression"
            xmi:uuid="98562b54-fd04-4f99-a5c9-278b1f8201b6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassExtentExpression-className"/>
            <memberEnd xmi:idref="Alf-A_className_classExtentExpression-classExtentExpression"/>
            <ownedEnd xmi:id="Alf-A_className_classExtentExpression-classExtentExpression"
                xmi:uuid="951ec3a1-bb9f-402b-bcb4-be43cbfa355a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_className_classExtentExpression-classExtentExpression-lowerValue"
                    xmi:uuid="171233c9-c3da-42b6-be17-2c19e7fae78d" xmi:type="uml:LiteralInteger"/>
                <name>classExtentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassExtentExpression"/>
                <association xmi:idref="Alf-A_className_classExtentExpression"/>
            </ownedEnd>
            <name>A_className_classExtentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_feature_incrementOrDecrementExpression"
            xmi:uuid="e429545d-5e6b-47d8-b59d-fcf95ca41854" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IncrementOrDecrementExpression-feature"/>
            <memberEnd
                xmi:idref="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression"/>
            <ownedEnd
                xmi:id="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression"
                xmi:uuid="81318857-6b6e-4df7-8bc5-8e6a93c02125" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue"
                    xmi:uuid="cbc7e23c-0e23-481f-b60f-0fc1a1bdf9cd" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue"
                    xmi:uuid="9637d296-bf2f-4b78-9dce-93ff8b145032"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>incrementOrDecrementExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <association xmi:idref="Alf-A_feature_incrementOrDecrementExpression"/>
            </ownedEnd>
            <name>A_feature_incrementOrDecrementExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_associationName_linkOperationExpression"
            xmi:uuid="6189b4b1-fa6b-427b-b07e-722414dfe036" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LinkOperationExpression-associationName"/>
            <memberEnd
                xmi:idref="Alf-A_associationName_linkOperationExpression-linkOperationExpression"/>
            <ownedEnd xmi:id="Alf-A_associationName_linkOperationExpression-linkOperationExpression"
                xmi:uuid="60564e80-3980-4a89-a849-774e6788edba" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_associationName_linkOperationExpression-linkOperationExpression-lowerValue"
                    xmi:uuid="5269d568-7b51-4c14-9e1e-f4771b0d8c0d" xmi:type="uml:LiteralInteger"/>
                <name>linkOperationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LinkOperationExpression"/>
                <association xmi:idref="Alf-A_associationName_linkOperationExpression"/>
            </ownedEnd>
            <name>A_associationName_linkOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_binaryExpression_operand2"
            xmi:uuid="9c6bccc0-3f10-42f3-a0b2-808b0b5329f8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-A_binaryExpression_operand2-binaryExpression"/>
            <memberEnd xmi:idref="Alf-BinaryExpression-operand2"/>
            <ownedEnd xmi:id="Alf-A_binaryExpression_operand2-binaryExpression"
                xmi:uuid="bedb3ea0-bc5d-455a-88cd-cd7bc74c4986" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_binaryExpression_operand2-binaryExpression-lowerValue"
                    xmi:uuid="c4880695-fd5b-45a7-9fba-8bc42e524ed7" xmi:type="uml:LiteralInteger"/>
                <name>binaryExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-BinaryExpression"/>
                <association xmi:idref="Alf-A_binaryExpression_operand2"/>
            </ownedEnd>
            <name>A_binaryExpression_operand2</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_boundReferent_invocationExpression"
            xmi:uuid="907c3177-4845-4276-b732-f56df6ff4b13" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InvocationExpression-boundReferent"/>
            <memberEnd xmi:idref="Alf-A_boundReferent_invocationExpression-invocationExpression"/>
            <ownedEnd xmi:id="Alf-A_boundReferent_invocationExpression-invocationExpression"
                xmi:uuid="aa7180d7-d3b1-4a26-8e09-31800703d66a" xmi:type="uml:Property">
                <name>invocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InvocationExpression"/>
                <association xmi:idref="Alf-A_boundReferent_invocationExpression"/>
            </ownedEnd>
            <name>A_boundReferent_invocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_sequenceConstructionExpression"
            xmi:uuid="3be771e3-37d1-43bf-a026-925efea32320" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceConstructionExpression-typeName"/>
            <memberEnd
                xmi:idref="Alf-A_typeName_sequenceConstructionExpression-sequenceConstructionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_typeName_sequenceConstructionExpression-sequenceConstructionExpression"
                xmi:uuid="34e4ff4d-66f9-4efd-a6f4-423dc7326750" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_typeName_sequenceConstructionExpression-sequenceConstructionExpression-lowerValue"
                    xmi:uuid="e58add23-b9b1-4990-87a2-15d86fb3ed02" xmi:type="uml:LiteralInteger"/>
                <name>sequenceConstructionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceConstructionExpression"/>
                <association xmi:idref="Alf-A_typeName_sequenceConstructionExpression"/>
            </ownedEnd>
            <name>A_typeName_sequenceConstructionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_nameBinding_featureReference"
            xmi:uuid="17b57388-f36d-4b2b-ac6b-8e789baa13f1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-FeatureReference-nameBinding"/>
            <memberEnd xmi:idref="Alf-A_nameBinding_featureReference-featureReference"/>
            <ownedEnd xmi:id="Alf-A_nameBinding_featureReference-featureReference"
                xmi:uuid="03f9f6e0-1c47-405c-9006-d4f315439001" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_nameBinding_featureReference-featureReference-lowerValue"
                    xmi:uuid="30150ab5-80b7-4fa1-a5e7-024eba959e4a" xmi:type="uml:LiteralInteger"/>
                <name>featureReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_nameBinding_featureReference"/>
            </ownedEnd>
            <name>A_nameBinding_featureReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_behaviorName_sequenceReductionExpression"
            xmi:uuid="da71dddb-a1e4-4a28-819c-8a11eb5f91c5" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceReductionExpression-behaviorName"/>
            <memberEnd
                xmi:idref="Alf-A_behaviorName_sequenceReductionExpression-sequenceReductionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_behaviorName_sequenceReductionExpression-sequenceReductionExpression"
                xmi:uuid="287c4e1a-e266-4c11-ac80-e8e5833f9c5f" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_behaviorName_sequenceReductionExpression-sequenceReductionExpression-lowerValue"
                    xmi:uuid="8567ea62-1b7b-486c-9409-2df72acd8067" xmi:type="uml:LiteralInteger"/>
                <name>sequenceReductionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceReductionExpression"/>
                <association xmi:idref="Alf-A_behaviorName_sequenceReductionExpression"/>
            </ownedEnd>
            <name>A_behaviorName_sequenceReductionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_featureReference"
            xmi:uuid="3395909f-9cc0-464f-bc5d-f5e16fb87dfe" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-FeatureReference-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_featureReference-featureReference"/>
            <ownedEnd xmi:id="Alf-A_referent_featureReference-featureReference"
                xmi:uuid="f276ad36-0d1e-4ea9-b290-484765adcad4" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_referent_featureReference-featureReference-lowerValue"
                    xmi:uuid="78704fa8-62d3-4645-9f70-acee52f27ce9" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_referent_featureReference-featureReference-upperValue"
                    xmi:uuid="2c3f3cd7-53aa-4b00-b113-c9b370abe368"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>featureReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-FeatureReference"/>
                <association xmi:idref="Alf-A_referent_featureReference"/>
            </ownedEnd>
            <name>A_referent_featureReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_positionalTuple"
            xmi:uuid="dc25fb14-1c2f-4e4b-babf-7436335d35de" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PositionalTuple-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_positionalTuple-positionalTuple"/>
            <ownedEnd xmi:id="Alf-A_expression_positionalTuple-positionalTuple"
                xmi:uuid="6e025171-9a53-4159-ba4f-f1d7dbb964d3" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_positionalTuple-positionalTuple-lowerValue"
                    xmi:uuid="b2a0a965-8702-4a3e-9ebf-939eb036ff74" xmi:type="uml:LiteralInteger"/>
                <name>positionalTuple</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PositionalTuple"/>
                <association xmi:idref="Alf-A_expression_positionalTuple"/>
            </ownedEnd>
            <name>A_expression_positionalTuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operation_sequenceOperationExpression"
            xmi:uuid="1bf91dbf-a4a8-4c29-a238-9923f5183b78" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceOperationExpression-operation"/>
            <memberEnd
                xmi:idref="Alf-A_operation_sequenceOperationExpression-sequenceOperationExpression"/>
            <ownedEnd
                xmi:id="Alf-A_operation_sequenceOperationExpression-sequenceOperationExpression"
                xmi:uuid="be8753ba-9edd-48d8-a420-5bfb5804b059" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_operation_sequenceOperationExpression-sequenceOperationExpression-lowerValue"
                    xmi:uuid="1966ff94-ad02-4c66-9789-b67b10a94920" xmi:type="uml:LiteralInteger"/>
                <name>sequenceOperationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceOperationExpression"/>
                <association xmi:idref="Alf-A_operation_sequenceOperationExpression"/>
            </ownedEnd>
            <name>A_operation_sequenceOperationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_feature_propertyAccessExpression"
            xmi:uuid="ac2a8102-ff7b-4e77-a811-45c0e13f2de4" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PropertyAccessExpression-feature"/>
            <memberEnd xmi:idref="Alf-A_feature_propertyAccessExpression-propertyAccessExpression"/>
            <ownedEnd xmi:id="Alf-A_feature_propertyAccessExpression-propertyAccessExpression"
                xmi:uuid="30257368-4e3e-405b-843c-512c983f9e1a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_feature_propertyAccessExpression-propertyAccessExpression-lowerValue"
                    xmi:uuid="5e911106-dc7e-4e42-9159-d9bac41a5fac" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_feature_propertyAccessExpression-propertyAccessExpression-upperValue"
                    xmi:uuid="191e4484-971a-4624-a5fd-59e783ff52cd"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>propertyAccessExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PropertyAccessExpression"/>
                <association xmi:idref="Alf-A_feature_propertyAccessExpression"/>
            </ownedEnd>
            <name>A_feature_propertyAccessExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_index_namedExpression"
            xmi:uuid="c1dd6c61-02de-45d1-a65e-40644424e297" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamedExpression-index"/>
            <memberEnd xmi:idref="Alf-A_index_namedExpression-namedExpression"/>
            <ownedEnd xmi:id="Alf-A_index_namedExpression-namedExpression"
                xmi:uuid="dbd48f4e-225d-419c-9158-1a227414e498" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_index_namedExpression-namedExpression-lowerValue"
                    xmi:uuid="1ded7f5a-0ee0-4497-ba9c-fc6313cc4a4e" xmi:type="uml:LiteralInteger"/>
                <name>namedExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamedExpression"/>
                <association xmi:idref="Alf-A_index_namedExpression"/>
            </ownedEnd>
            <name>A_index_namedExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_argumentName_templateParameterSubstitution"
            xmi:uuid="6d37a744-506f-4d90-bc84-9e6258f49546" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-TemplateParameterSubstitution-argumentName"/>
            <memberEnd
                xmi:idref="Alf-A_argumentName_templateParameterSubstitution-templateParameterSubstitution"/>
            <ownedEnd
                xmi:id="Alf-A_argumentName_templateParameterSubstitution-templateParameterSubstitution"
                xmi:uuid="f9d292e6-3b2a-4052-9942-f39afb9095f1" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_argumentName_templateParameterSubstitution-templateParameterSubstitution-lowerValue"
                    xmi:uuid="4f76cb40-f2dc-470f-8475-0e3ba7504541" xmi:type="uml:LiteralInteger"/>
                <name>templateParameterSubstitution</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-TemplateParameterSubstitution"/>
                <association xmi:idref="Alf-A_argumentName_templateParameterSubstitution"/>
            </ownedEnd>
            <name>A_argumentName_templateParameterSubstitution</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_feature_assignmentExpression"
            xmi:uuid="d01fb3a2-692c-4b44-b6e0-408743ba19f2" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignmentExpression-feature"/>
            <memberEnd xmi:idref="Alf-A_feature_assignmentExpression-assignmentExpression"/>
            <ownedEnd xmi:id="Alf-A_feature_assignmentExpression-assignmentExpression"
                xmi:uuid="9c781563-8ca7-44f1-ae2b-b18e5fecb314" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_feature_assignmentExpression-assignmentExpression-lowerValue"
                    xmi:uuid="54d73512-44af-46e9-bff7-042029590139" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_feature_assignmentExpression-assignmentExpression-upperValue"
                    xmi:uuid="a4baa99c-418c-4957-a3d9-d8505b210d02"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignmentExpression"/>
                <association xmi:idref="Alf-A_feature_assignmentExpression"/>
            </ownedEnd>
            <name>A_feature_assignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_leftHandSide"
            xmi:uuid="dab9056d-668c-4870-b2e4-2fd8f5c96121" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LeftHandSide-assignmentBefore"/>
            <memberEnd xmi:idref="Alf-A_assignmentBefore_leftHandSide-leftHandSide"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_leftHandSide-leftHandSide"
                xmi:uuid="c869e680-d2cc-41c5-bdc4-bb7b8059162e" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentBefore_leftHandSide-leftHandSide-lowerValue"
                    xmi:uuid="6b95e160-3986-44c7-8ebd-d9de243fe17e" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentBefore_leftHandSide-leftHandSide-upperValue"
                    xmi:uuid="7e4dd42f-6190-46d1-a09f-ac6214950478"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_assignmentBefore_leftHandSide"/>
            </ownedEnd>
            <name>A_assignmentBefore_leftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_variableSource_sequenceExpansionExpression"
            xmi:uuid="6d3d4141-4a5c-4f18-a362-0a7e1d9c4cc3" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceExpansionExpression-variableSource"/>
            <memberEnd
                xmi:idref="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression"/>
            <ownedEnd
                xmi:id="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression"
                xmi:uuid="53a75765-0bb4-4be7-95c4-bfec51b2c955" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue"
                    xmi:uuid="3356f7c7-e834-4804-a7d0-c2227204ccc7" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression-upperValue"
                    xmi:uuid="16df7cd3-27b2-4cb8-97f3-1791bba45aef"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>sequenceExpansionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceExpansionExpression"/>
                <association xmi:idref="Alf-A_variableSource_sequenceExpansionExpression"/>
            </ownedEnd>
            <name>A_variableSource_sequenceExpansionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_feature_featureLeftHandSide"
            xmi:uuid="19cd836c-2f59-4beb-a347-f7573759a180" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-FeatureLeftHandSide-feature"/>
            <memberEnd xmi:idref="Alf-A_feature_featureLeftHandSide-featureLeftHandSide"/>
            <ownedEnd xmi:id="Alf-A_feature_featureLeftHandSide-featureLeftHandSide"
                xmi:uuid="118f0d33-44fe-4ea0-9679-e2a773bc751d" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_feature_featureLeftHandSide-featureLeftHandSide-lowerValue"
                    xmi:uuid="ad3bba97-c050-478f-b4b8-90da79d7d4dc" xmi:type="uml:LiteralInteger"/>
                <name>featureLeftHandSide</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-FeatureLeftHandSide"/>
                <association xmi:idref="Alf-A_feature_featureLeftHandSide"/>
            </ownedEnd>
            <name>A_feature_featureLeftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentAfter_leftHandSide"
            xmi:uuid="373870b9-9dc2-4d55-9247-6bb59864d75a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LeftHandSide-assignmentAfter"/>
            <memberEnd xmi:idref="Alf-A_assignmentAfter_leftHandSide-leftHandSide"/>
            <ownedEnd xmi:id="Alf-A_assignmentAfter_leftHandSide-leftHandSide"
                xmi:uuid="6d8ff4c4-acb6-4c2b-919a-8938055f6983" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentAfter_leftHandSide-leftHandSide-lowerValue"
                    xmi:uuid="4b88934a-58c3-464b-ba93-6bdc7004d615" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentAfter_leftHandSide-leftHandSide-upperValue"
                    xmi:uuid="896872f9-4fc5-456a-9718-12fbe902fb7d"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_assignmentAfter_leftHandSide"/>
            </ownedEnd>
            <name>A_assignmentAfter_leftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentAfter_expression"
            xmi:uuid="befdc1df-914f-4400-a406-6b83c597135e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Expression-assignmentAfter"/>
            <memberEnd xmi:idref="Alf-A_assignmentAfter_expression-expression"/>
            <ownedEnd xmi:id="Alf-A_assignmentAfter_expression-expression"
                xmi:uuid="013ff8ee-8de2-4059-806b-77c3ce972074" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentAfter_expression-expression-lowerValue"
                    xmi:uuid="e213eba0-073a-4969-8128-52bbfe23fad2" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentAfter_expression-expression-upperValue"
                    xmi:uuid="a4c7e2f0-68f5-4485-b83f-db389bf71934"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>expression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_assignmentAfter_expression"/>
            </ownedEnd>
            <name>A_assignmentAfter_expression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_parameter_invocationExpression"
            xmi:uuid="3f2a7529-2c62-492e-b58b-e3bc1559f3cf" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InvocationExpression-parameter"/>
            <memberEnd xmi:idref="Alf-A_parameter_invocationExpression-invocationExpression"/>
            <ownedEnd xmi:id="Alf-A_parameter_invocationExpression-invocationExpression"
                xmi:uuid="4f8d038b-4cf5-4f66-aa34-2ce69c8bc1c4" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_parameter_invocationExpression-invocationExpression-lowerValue"
                    xmi:uuid="a19f02c7-c6a6-4227-a009-59a549ab8434" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_parameter_invocationExpression-invocationExpression-upperValue"
                    xmi:uuid="6ece29b2-7664-4e0e-9a8b-6b67bf30c4ef"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>invocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InvocationExpression"/>
                <association xmi:idref="Alf-A_parameter_invocationExpression"/>
            </ownedEnd>
            <name>A_parameter_invocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_primary_sequenceExpansionExpression"
            xmi:uuid="dd8ddff4-6f8f-438e-9275-94031a48ceec" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceExpansionExpression-primary"/>
            <memberEnd
                xmi:idref="Alf-A_primary_sequenceExpansionExpression-sequenceExpansionExpression"/>
            <ownedEnd xmi:id="Alf-A_primary_sequenceExpansionExpression-sequenceExpansionExpression"
                xmi:uuid="940aaf15-1f6a-4d41-9b00-6c48427b71ce" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_primary_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue"
                    xmi:uuid="5d185a88-0257-4e20-a66a-d22ab582a1cc" xmi:type="uml:LiteralInteger"/>
                <name>sequenceExpansionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceExpansionExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceExpansionExpression"/>
            </ownedEnd>
            <name>A_primary_sequenceExpansionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_templateName_qualifiedName"
            xmi:uuid="b667d7aa-5755-4f84-8e55-f7606e031155" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedName-templateName"/>
            <memberEnd xmi:idref="Alf-A_templateName_qualifiedName-qualifiedName"/>
            <ownedEnd xmi:id="Alf-A_templateName_qualifiedName-qualifiedName"
                xmi:uuid="a6d41226-3e9a-4afe-b8f4-307bdb4dbadb" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_templateName_qualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="c60692e1-4705-4b62-bfa4-b7801f8627d7" xmi:type="uml:LiteralInteger"/>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_templateName_qualifiedName"/>
            </ownedEnd>
            <name>A_templateName_qualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_namedExpression_namedTuple"
            xmi:uuid="40d3b118-0c25-4edd-a77f-78de02605d46" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamedTuple-namedExpression"/>
            <memberEnd xmi:idref="Alf-A_namedExpression_namedTuple-namedTuple"/>
            <ownedEnd xmi:id="Alf-A_namedExpression_namedTuple-namedTuple"
                xmi:uuid="a9945835-a50c-42fd-b287-29fc774d3413" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_namedExpression_namedTuple-namedTuple-lowerValue"
                    xmi:uuid="1963763f-72f7-4c68-86a1-b6b72b64a589" xmi:type="uml:LiteralInteger"/>
                <name>namedTuple</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamedTuple"/>
                <association xmi:idref="Alf-A_namedExpression_namedTuple"/>
            </ownedEnd>
            <name>A_namedExpression_namedTuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_index_leftHandSide"
            xmi:uuid="2c7e4ecf-5a78-411b-9881-31d743951434" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LeftHandSide-index"/>
            <memberEnd xmi:idref="Alf-A_index_leftHandSide-leftHandSide"/>
            <ownedEnd xmi:id="Alf-A_index_leftHandSide-leftHandSide"
                xmi:uuid="50ff17ce-98ec-4f38-9d72-2fdb41a327eb" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_index_leftHandSide-leftHandSide-lowerValue"
                    xmi:uuid="ad1286c8-c9ef-440c-9135-51c7e953c28c" xmi:type="uml:LiteralInteger"/>
                <name>leftHandSide</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LeftHandSide"/>
                <association xmi:idref="Alf-A_index_leftHandSide"/>
            </ownedEnd>
            <name>A_index_leftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_target_featureInvocationExpression"
            xmi:uuid="d7ef6fba-c098-498f-b10b-19d33bca4ea7" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-FeatureInvocationExpression-target"/>
            <memberEnd
                xmi:idref="Alf-A_target_featureInvocationExpression-featureInvocationExpression"/>
            <ownedEnd xmi:id="Alf-A_target_featureInvocationExpression-featureInvocationExpression"
                xmi:uuid="dbcaed93-a27d-412c-a205-966c93ee7532" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_target_featureInvocationExpression-featureInvocationExpression-lowerValue"
                    xmi:uuid="62e38f74-0d99-4773-8870-0e44a18d41e5" xmi:type="uml:LiteralInteger"/>
                <name>featureInvocationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-FeatureInvocationExpression"/>
                <association xmi:idref="Alf-A_target_featureInvocationExpression"/>
            </ownedEnd>
            <name>A_target_featureInvocationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_constructor_instanceCreationExpression"
            xmi:uuid="73a168fb-24dd-43a1-af5e-c6af865167ee" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-InstanceCreationExpression-constructor"/>
            <memberEnd
                xmi:idref="Alf-A_constructor_instanceCreationExpression-instanceCreationExpression"/>
            <ownedEnd
                xmi:id="Alf-A_constructor_instanceCreationExpression-instanceCreationExpression"
                xmi:uuid="fcd3e8f5-c2f4-4e3c-acc1-d547703ed390" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_constructor_instanceCreationExpression-instanceCreationExpression-lowerValue"
                    xmi:uuid="69734cdf-bcdf-49cd-bb5d-b0212ebe5ad6" xmi:type="uml:LiteralInteger"/>
                <name>instanceCreationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-InstanceCreationExpression"/>
                <association xmi:idref="Alf-A_constructor_instanceCreationExpression"/>
            </ownedEnd>
            <name>A_constructor_instanceCreationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_classificationExpression"
            xmi:uuid="380c7c8c-7d66-44f7-8cea-7c3e1e43b1fb" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassificationExpression-typeName"/>
            <memberEnd xmi:idref="Alf-A_typeName_classificationExpression-classificationExpression"/>
            <ownedEnd xmi:id="Alf-A_typeName_classificationExpression-classificationExpression"
                xmi:uuid="dcbb35fd-31dd-43c2-972a-9257d46c25e8" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_typeName_classificationExpression-classificationExpression-lowerValue"
                    xmi:uuid="e99888aa-d695-46a9-ac6f-873f341eaec9" xmi:type="uml:LiteralInteger"/>
                <name>classificationExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassificationExpression"/>
                <association xmi:idref="Alf-A_typeName_classificationExpression"/>
            </ownedEnd>
            <name>A_typeName_classificationExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_input_tuple" xmi:uuid="c635f57a-0b48-440e-8eb6-040004b8aa5f"
            xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Tuple-input"/>
            <memberEnd xmi:idref="Alf-A_input_tuple-tuple"/>
            <ownedEnd xmi:id="Alf-A_input_tuple-tuple"
                xmi:uuid="317637f6-20e1-4f50-8be4-c2be3f0a697e" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_input_tuple-tuple-lowerValue"
                    xmi:uuid="b4f62bfa-37be-4546-ad81-19e2ba8f6cc7" xmi:type="uml:LiteralInteger"/>
                <name>tuple</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Tuple"/>
                <association xmi:idref="Alf-A_input_tuple"/>
            </ownedEnd>
            <name>A_input_tuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_output_tuple" xmi:uuid="e40d4be4-f0c8-45de-967e-d0f2b9edbc18"
            xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Tuple-output"/>
            <memberEnd xmi:idref="Alf-A_output_tuple-tuple"/>
            <ownedEnd xmi:id="Alf-A_output_tuple-tuple"
                xmi:uuid="12da0404-5846-462e-b061-461188977e72" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_output_tuple-tuple-lowerValue"
                    xmi:uuid="847dde9d-5d86-4305-abb1-7c557ef13c94" xmi:type="uml:LiteralInteger"/>
                <name>tuple</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Tuple"/>
                <association xmi:idref="Alf-A_output_tuple"/>
            </ownedEnd>
            <name>A_output_tuple</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_operand_incrementOrDecrementExpression"
            xmi:uuid="db88824b-a64a-463d-b887-b80c502b4a95" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IncrementOrDecrementExpression-operand"/>
            <memberEnd
                xmi:idref="Alf-A_operand_incrementOrDecrementExpression-incrementOrDecrementExpression"/>
            <ownedEnd
                xmi:id="Alf-A_operand_incrementOrDecrementExpression-incrementOrDecrementExpression"
                xmi:uuid="b2d40201-9be4-41a9-a12a-8c55f4355d8e" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_operand_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue"
                    xmi:uuid="96e19d6e-e357-472e-bdaa-a21ad69c3b50" xmi:type="uml:LiteralInteger"/>
                <name>incrementOrDecrementExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <association xmi:idref="Alf-A_operand_incrementOrDecrementExpression"/>
            </ownedEnd>
            <name>A_operand_incrementOrDecrementExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_name_nameExpression"
            xmi:uuid="f2efc1e1-bfb7-4a1a-92bb-57134cb27ab8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameExpression-name"/>
            <memberEnd xmi:idref="Alf-A_name_nameExpression-nameExpression"/>
            <ownedEnd xmi:id="Alf-A_name_nameExpression-nameExpression"
                xmi:uuid="192e6c6a-0dfb-4901-8d55-cdf44d83d1ba" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_name_nameExpression-nameExpression-lowerValue"
                    xmi:uuid="976a98fd-acad-4fd5-a8ca-ba97bab2e304" xmi:type="uml:LiteralInteger"/>
                <name>nameExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameExpression"/>
                <association xmi:idref="Alf-A_name_nameExpression"/>
            </ownedEnd>
            <name>A_name_nameExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_target_nameLeftHandSide"
            xmi:uuid="2613b9a1-a36f-4574-8ca3-5495a8668010" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NameLeftHandSide-target"/>
            <memberEnd xmi:idref="Alf-A_target_nameLeftHandSide-nameLeftHandSide"/>
            <ownedEnd xmi:id="Alf-A_target_nameLeftHandSide-nameLeftHandSide"
                xmi:uuid="0d958145-b698-4b8f-9a97-4e6e32e3c97d" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_target_nameLeftHandSide-nameLeftHandSide-lowerValue"
                    xmi:uuid="97ef93b3-3092-41a3-9e6a-9863c1911a45" xmi:type="uml:LiteralInteger"/>
                <name>nameLeftHandSide</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NameLeftHandSide"/>
                <association xmi:idref="Alf-A_target_nameLeftHandSide"/>
            </ownedEnd>
            <name>A_target_nameLeftHandSide</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_qualifiedName_unqualifiedName"
            xmi:uuid="9458aca5-7f91-47d5-9c00-e8525353b654" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-A_qualifiedName_unqualifiedName-qualifiedName"/>
            <memberEnd xmi:idref="Alf-QualifiedName-unqualifiedName"/>
            <ownedEnd xmi:id="Alf-A_qualifiedName_unqualifiedName-qualifiedName"
                xmi:uuid="f96f1db6-220c-49c0-b7ef-edff53dc9de5" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_qualifiedName_unqualifiedName-qualifiedName-lowerValue"
                    xmi:uuid="0bad8d36-fefa-4cc8-94d6-7599700509f9" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_qualifiedName_unqualifiedName-qualifiedName-upperValue"
                    xmi:uuid="3bbcd38b-8e74-4967-af00-a0e20b320e26"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>qualifiedName</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_qualifiedName_unqualifiedName"/>
            </ownedEnd>
            <name>A_qualifiedName_unqualifiedName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignment_incrementOrDecrementExpression"
            xmi:uuid="2a73aba1-f2ad-41e0-bac6-d507fcda047a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IncrementOrDecrementExpression-assignment"/>
            <memberEnd
                xmi:idref="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression"/>
            <ownedEnd
                xmi:id="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression"
                xmi:uuid="4b97b787-2c31-48fe-a1bc-f41881c615c7" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue"
                    xmi:uuid="2553cd58-3818-437f-805b-2e421465b589" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue"
                    xmi:uuid="87574f22-99b9-486e-adb3-b27f2a88caa7"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>incrementOrDecrementExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
                <association xmi:idref="Alf-A_assignment_incrementOrDecrementExpression"/>
            </ownedEnd>
            <name>A_assignment_incrementOrDecrementExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_name_extentOrExpression"
            xmi:uuid="6e7d3ea8-b5cf-4395-9d2c-8e873f454774" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ExtentOrExpression-name"/>
            <memberEnd xmi:idref="Alf-A_name_extentOrExpression-extentOrExpression"/>
            <ownedEnd xmi:id="Alf-A_name_extentOrExpression-extentOrExpression"
                xmi:uuid="6e0ae0ec-673c-486c-a815-c63f9af6120f" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_name_extentOrExpression-extentOrExpression-lowerValue"
                    xmi:uuid="bb8ade84-99d2-4b2c-9cce-584974dbc66f" xmi:type="uml:LiteralInteger"/>
                <name>extentOrExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ExtentOrExpression"/>
                <association xmi:idref="Alf-A_name_extentOrExpression"/>
            </ownedEnd>
            <name>A_name_extentOrExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_type_expression"
            xmi:uuid="9594ccd4-b5a3-495d-926e-554720896595" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Expression-type"/>
            <memberEnd xmi:idref="Alf-A_type_expression-expression"/>
            <ownedEnd xmi:id="Alf-A_type_expression-expression"
                xmi:uuid="9633c407-cef7-4cdf-83c6-2e6474fbc6c7" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_type_expression-expression-lowerValue"
                    xmi:uuid="c8f2ff8e-3b40-48c1-b89e-70e3362d1993" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_type_expression-expression-upperValue"
                    xmi:uuid="94efb525-26e8-4a51-9f76-d5ba4c89f4d5"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>expression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_type_expression"/>
            </ownedEnd>
            <name>A_type_expression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignment_assignmentExpression"
            xmi:uuid="33f9cd98-7d47-481c-b6e0-a47ccf2cb0b1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignmentExpression-assignment"/>
            <memberEnd xmi:idref="Alf-A_assignment_assignmentExpression-assignmentExpression"/>
            <ownedEnd xmi:id="Alf-A_assignment_assignmentExpression-assignmentExpression"
                xmi:uuid="2f384b9a-c3df-43f5-945f-9540d1d804bc" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_assignment_assignmentExpression-assignmentExpression-lowerValue"
                    xmi:uuid="97ec7ca2-a0e4-4f27-9009-c86d043a6f69" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_assignment_assignmentExpression-assignmentExpression-upperValue"
                    xmi:uuid="28f7a287-5beb-4845-8652-7c45e97f108a"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignmentExpression"/>
                <association xmi:idref="Alf-A_assignment_assignmentExpression"/>
            </ownedEnd>
            <name>A_assignment_assignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_primary_sequenceReductionExpression"
            xmi:uuid="25289c8c-aef4-44a4-baea-b17030602737" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SequenceReductionExpression-primary"/>
            <memberEnd
                xmi:idref="Alf-A_primary_sequenceReductionExpression-sequenceReductionExpression"/>
            <ownedEnd xmi:id="Alf-A_primary_sequenceReductionExpression-sequenceReductionExpression"
                xmi:uuid="ff657782-0e87-4b8c-addd-da8981c8cc19" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_primary_sequenceReductionExpression-sequenceReductionExpression-lowerValue"
                    xmi:uuid="bcefd01d-a8e0-4f34-a7f4-4d0d4bcaf490" xmi:type="uml:LiteralInteger"/>
                <name>sequenceReductionExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SequenceReductionExpression"/>
                <association xmi:idref="Alf-A_primary_sequenceReductionExpression"/>
            </ownedEnd>
            <name>A_primary_sequenceReductionExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_leftHandSide_assignmentExpression"
            xmi:uuid="aefab9a7-c8cc-488f-95b7-10ee644992c9" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AssignmentExpression-leftHandSide"/>
            <memberEnd xmi:idref="Alf-A_leftHandSide_assignmentExpression-assignmentExpression"/>
            <ownedEnd xmi:id="Alf-A_leftHandSide_assignmentExpression-assignmentExpression"
                xmi:uuid="08146b27-5616-4f8c-b163-5627cb850f0d" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_leftHandSide_assignmentExpression-assignmentExpression-lowerValue"
                    xmi:uuid="9f823b15-b9e3-402a-bdc3-fff02eb1811b" xmi:type="uml:LiteralInteger"/>
                <name>assignmentExpression</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AssignmentExpression"/>
                <association xmi:idref="Alf-A_leftHandSide_assignmentExpression"/>
            </ownedEnd>
            <name>A_leftHandSide_assignmentExpression</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-DoStatement" xmi:uuid="998c08f3-1304-43e3-af57-7603f885d9fb"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-DoStatement-ownedComment"
                xmi:uuid="457beb15-c18a-4bf2-8bfe-9197aa672b82" xmi:type="uml:Comment">
                <body>A looping statement for which the continuation condition is first tested after the first iteration.
</body>
                <annotatedElement xmi:idref="Alf-DoStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-DoStatement-doStatementAssignmentsBefore"
                xmi:uuid="f3d41340-a7d1-4444-8683-6431971b3405" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DoStatement"/>
                <specification xmi:id="Alf-DoStatement-doStatementAssignmentsBefore-specification"
                    xmi:uuid="ecbf779d-9d3c-4acf-b876-9ae86519ecf5" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the block of a do statement are the same as the assignments before the do statement, except that any local names with a multiplicity lower bound of 0 after the condition expression are adjusted to also have a multiplicity lower bound of 0 before the block. The assignments before the condition expression of a do statement are the same assignments after the block.
</body>
                    <language>English</language>
                </specification>
                <name>doStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-DoStatement-doStatementAssignmentsAfter"
                xmi:uuid="ca127a5c-3ec6-4887-9de9-e0f25a6f4270" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DoStatement"/>
                <specification xmi:id="Alf-DoStatement-doStatementAssignmentsAfter-specification"
                    xmi:uuid="00acf344-5fcd-46bf-89ab-9659e6b15b80" xmi:type="uml:OpaqueExpression">
                    <body>If the assigned source for a name after the condition expression is different than before the do statement, then the assigned source of the name after the do statement is the do statement. Otherwise it is the same as before the do statement. The assignments after the do statement are adjusted for known null and non-null names and type classifications due to the condition expression being false.
</body>
                    <language>English</language>
                </specification>
                <name>doStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-DoStatement-doStatementCondition"
                xmi:uuid="b135068e-5651-4cc9-9f63-e60ded1a01c8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DoStatement"/>
                <specification xmi:id="Alf-DoStatement-doStatementCondition-specification"
                    xmi:uuid="64d7a27d-04da-403a-b1fa-a66fa4130439" xmi:type="uml:OpaqueExpression">
                    <body>The condition expression of a do statement must have a type that conforms to type Boolean and multplicity [1..1].
</body>
                    <language>English</language>
                </specification>
                <name>doStatementCondition</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-DoStatement-doStatementEnclosedStatements"
                xmi:uuid="14b2484e-b507-4fce-b6f6-48068c45d9f0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DoStatement"/>
                <specification xmi:id="Alf-DoStatement-doStatementEnclosedStatements-specification"
                    xmi:uuid="506b9817-be97-4603-8f18-939822c43704" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement for all statements in the body of a do statement are the do statement.
</body>
                    <language>English</language>
                </specification>
                <name>doStatementEnclosedStatements</name>
            </ownedRule>
            <generalization xmi:id="Alf-DoStatement-generalization"
                xmi:uuid="03077023-ff99-418f-9f3d-ce7e7b41a6ab" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-DoStatement-condition"
                xmi:uuid="dd9ca791-cd0b-4b9e-b4ad-76c655e1bb74" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-DoStatement-condition-ownedComment"
                    xmi:uuid="1494a8f2-3a4f-4738-8cef-495cbf437b2f" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to determine whether to continue looping.
</body>
                    <annotatedElement xmi:idref="Alf-DoStatement-condition"/>
                </ownedComment>
                <name>condition</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_condition_doStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-DoStatement-body"
                xmi:uuid="279afbf7-05f2-4f4d-b757-e81b3cb3cb29" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-DoStatement-body-ownedComment"
                    xmi:uuid="bf8c1983-3e4a-4f70-bdf4-66c583bc5c37" xmi:type="uml:Comment">
                    <body>The sequence of statements to be iteratively executed.
</body>
                    <annotatedElement xmi:idref="Alf-DoStatement-body"/>
                </ownedComment>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_doStatement"/>
            </ownedAttribute>
            <name>DoStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Statement" xmi:uuid="fdbbb2f5-9d10-4605-9f20-27074adde119"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Statement-ownedComment"
                xmi:uuid="393bf923-c528-4f43-884d-4d36fb272c1d" xmi:type="uml:Comment">
                <body>A model of an Alf statement.
</body>
                <annotatedElement xmi:idref="Alf-Statement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-Statement-statementAnnotationsAllowed"
                xmi:uuid="0c32f169-98b6-4653-b52c-dbbc073bf9c2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Statement"/>
                <specification xmi:id="Alf-Statement-statementAnnotationsAllowed-specification"
                    xmi:uuid="0913bf90-8e9b-4891-9207-a8d8896a1862" xmi:type="uml:OpaqueExpression">
                    <body>All the annotations of a statement must be allowed, as given by the annotationAllowed operation for the statement.
</body>
                    <language>English</language>
                </specification>
                <name>statementAnnotationsAllowed</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Statement-statementUniqueAssignments"
                xmi:uuid="47c22ae1-4504-4a68-b23c-2e535da61fab" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Statement"/>
                <specification xmi:id="Alf-Statement-statementUniqueAssignments-specification"
                    xmi:uuid="0e147bcf-4a6f-462d-9fd5-51392e9306fa" xmi:type="uml:OpaqueExpression">
                    <body>No name may be assigned more than once before or after a statement.
</body>
                    <language>English</language>
                </specification>
                <name>statementUniqueAssignments</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Statement-statementIsIsolatedDerivation"
                xmi:uuid="98260930-d3c5-4464-84b3-47fa80e600d0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Statement"/>
                <specification xmi:id="Alf-Statement-statementIsIsolatedDerivation-specification"
                    xmi:uuid="8113eca2-d628-4c43-b9d6-ca294a94e50f" xmi:type="uml:OpaqueExpression">
                    <body>A statement is isolated if it has an @isolated annotation.
</body>
                    <language>English</language>
                </specification>
                <name>statementIsIsolatedDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Statement-statementIsIndexFrom0Derivation"
                xmi:uuid="2de93507-6966-4d49-8ef6-11534b50f602" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Statement"/>
                <specification xmi:id="Alf-Statement-statementIsIndexFrom0Derivation-specification"
                    xmi:uuid="237f0b5f-e338-4c11-85fd-9eb78b932bd4" xmi:type="uml:OpaqueExpression">
                    <body>A statement has indexing from 0 if it has an @indexFrom0 annotation, or it is contained in a statement with indexing from 0 and it does not have an @indexFrom1 annotation applied.
</body>
                    <language>English</language>
                </specification>
                <name>statementIsIndexFrom0Derivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-Statement-generalization"
                xmi:uuid="87c82d1c-07a9-4a0e-adbd-8c70f428fab9" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-DocumentedElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Statement-annotation"
                xmi:uuid="3310b6de-71c6-49a4-a492-fb9440208bb8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Statement-annotation-ownedComment"
                    xmi:uuid="9e8b1d17-31f9-4a24-8f20-49e83f14902b" xmi:type="uml:Comment">
                    <body>The annotations applied to this statement.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-annotation"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Statement-annotation-lowerValue"
                    xmi:uuid="1a2b0e74-fbdf-4b10-84b4-30d28ff5b30a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Statement-annotation-upperValue"
                    xmi:uuid="ec7d3b74-8166-4f91-8056-f527fdf95cc8"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>annotation</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Annotation"/>
                <association xmi:idref="Alf-A_annotation_statement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Statement-assignmentBefore"
                xmi:uuid="3172bb35-1e45-4d2e-af2c-2684a2fc6701" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Statement-assignmentBefore-ownedComment"
                    xmi:uuid="72e963ff-fa32-4e08-8595-7abf07e60b1b" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically before this statement.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Statement-assignmentBefore-lowerValue"
                    xmi:uuid="ba1ee784-4828-4a87-8970-3a41ca4f313c" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Statement-assignmentBefore-upperValue"
                    xmi:uuid="bd32d8db-c107-4b0b-8802-9aaf66dfb0e7"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_statement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Statement-assignmentAfter"
                xmi:uuid="b501b1c3-443f-424c-93ab-0239b634d88e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Statement-assignmentAfter-ownedComment"
                    xmi:uuid="95662f7d-efd5-49eb-b64c-9722684350b6" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically after this statement. This includes not only any assignments made within the statement, but also any assignments that are unchanged from before the statement.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-assignmentAfter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Statement-assignmentAfter-lowerValue"
                    xmi:uuid="f7c74e6c-cabd-4d88-b2d9-f7c73f3f2484" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Statement-assignmentAfter-upperValue"
                    xmi:uuid="9ca7e6b6-e2bc-4423-ba71-d22abf0d6a0b"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentAfter</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentAfter_statement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Statement-enclosingStatement"
                xmi:uuid="ed206ca2-6f3b-4247-9924-0decdb4c23ad" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Statement-enclosingStatement-ownedComment"
                    xmi:uuid="8cc66f7f-4753-4b6b-b8f4-ff9f035d174e" xmi:type="uml:Comment">
                    <body>The statement immediately enclosing this statement, if any.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-enclosingStatement"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Statement-enclosingStatement-lowerValue"
                    xmi:uuid="ab549b80-2432-45bd-9fb4-1004018c0b90" xmi:type="uml:LiteralInteger"/>
                <name>enclosingStatement</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_enclosingStatement_statement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Statement-isIsolated"
                xmi:uuid="280bfa83-8bad-4adb-bcbd-2c770a63e7f9" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Statement-isIsolated-ownedComment"
                    xmi:uuid="c21fb163-c95f-472c-a364-2acc282fc08a" xmi:type="uml:Comment">
                    <body>Whether this statement should be executed in isolation.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-isIsolated"/>
                </ownedComment>
                <name>isIsolated</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Statement-isIndexFrom0"
                xmi:uuid="70743f67-f23a-4ba8-92c5-ea8e7535536b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Statement-isIndexFrom0-ownedComment"
                    xmi:uuid="99831952-557c-401b-ba22-76805a32612f" xmi:type="uml:Comment">
                    <body>Whether indexing should be from 0 within the statement.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-isIndexFrom0"/>
                </ownedComment>
                <name>isIndexFrom0</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-Statement-annotationAllowed"
                xmi:uuid="1eb7000b-e41f-489a-93fb-5d1a5844d182" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Statement-annotationAllowed-ownedComment"
                    xmi:uuid="fb8e2930-b780-4a2d-a9db-4ae14433c28b" xmi:type="uml:Comment">
                    <body>Returns true if the given annotation is allowed for this kind of statement. By default, only @isolated, @indexFrom0 and @indexFrom1 annotations are allowed, with no arguments. This operation is redefined only in subclasses of Statement for kinds of statements that allow different annotations than this default.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Statement-annotationAllowed-annotation"
                    xmi:uuid="e360507a-d4f0-4986-91ae-de120c13a32e" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Statement-annotationAllowed-result"
                    xmi:uuid="70ec6eac-b952-4106-9e87-1c40c41ffdfb" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Statement-hasReturnValue"
                xmi:uuid="5c6c525b-42d9-4e94-b0a9-5220f90b7172" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Statement-hasReturnValue-ownedComment"
                    xmi:uuid="85a9572e-9ac2-4527-a268-b3bcd2677061" xmi:type="uml:Comment">
                    <body>Returns true if this statement is assured to generate a return value. By default, a statement does not have a return value.
</body>
                    <annotatedElement xmi:idref="Alf-Statement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Statement-hasReturnValue-result"
                    xmi:uuid="d25317cf-bb8f-4866-9a83-9e20defdb4ef" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>Statement</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-BlockStatement" xmi:uuid="437d5c8a-c667-49e6-bd46-b605280ffb72"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BlockStatement-ownedComment"
                xmi:uuid="1e60d06d-8e36-40de-b909-3789dfedd608" xmi:type="uml:Comment">
                <body>A statement that executes a block.
</body>
                <annotatedElement xmi:idref="Alf-BlockStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-BlockStatement-blockStatementParallelAssignments"
                xmi:uuid="9a735c4f-0086-48d3-8517-d560516e82f4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BlockStatement"/>
                <specification
                    xmi:id="Alf-BlockStatement-blockStatementParallelAssignments-specification"
                    xmi:uuid="fcddbdc1-0987-4122-800b-f2e1d127ca9a" xmi:type="uml:OpaqueExpression">
                    <body>In a parallel block statement, any name assigned in one statement of the block may not be further assigned in any subsequent statement in the same block.
</body>
                    <language>English</language>
                </specification>
                <name>blockStatementParallelAssignments</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BlockStatement-blockStatementAssignmentsBefore"
                xmi:uuid="c50f4f43-d2f8-46a7-82bb-b795a2eeb9a8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BlockStatement"/>
                <specification
                    xmi:id="Alf-BlockStatement-blockStatementAssignmentsBefore-specification"
                    xmi:uuid="0025d081-cbb0-4c4f-8dd9-7fd6554051a4" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the block of a block statement are the same as the assignments before the block statement.
</body>
                    <language>English</language>
                </specification>
                <name>blockStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BlockStatement-blockStatementAssignmentsAfter"
                xmi:uuid="bd88ede6-75f9-4560-b9cf-bb4211fe5771" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BlockStatement"/>
                <specification
                    xmi:id="Alf-BlockStatement-blockStatementAssignmentsAfter-specification"
                    xmi:uuid="cf18b557-64e9-438c-bffa-590e43a4ae83" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a block statement are the same as the assignments after the block of the block statement.
</body>
                    <language>English</language>
                </specification>
                <name>blockStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BlockStatement-blockStatementEnclosedStatements"
                xmi:uuid="f1911548-7b09-462f-b416-5f8213c8679f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BlockStatement"/>
                <specification
                    xmi:id="Alf-BlockStatement-blockStatementEnclosedStatements-specification"
                    xmi:uuid="1e3caf8d-5061-46d5-8b8f-252b78c58f06" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement for all the statements in the block of a block statement is the block statement.
</body>
                    <language>English</language>
                </specification>
                <name>blockStatementEnclosedStatements</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BlockStatement-blockStatementIsParallelDerivation"
                xmi:uuid="9178a21f-7363-4261-b1b9-1241d72eaaf3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BlockStatement"/>
                <specification
                    xmi:id="Alf-BlockStatement-blockStatementIsParallelDerivation-specification"
                    xmi:uuid="a19d3cf3-25da-490b-a5c9-b7549a215543" xmi:type="uml:OpaqueExpression">
                    <body>A block statement is parallel if it has a @parallel annotation.
</body>
                    <language>English</language>
                </specification>
                <name>blockStatementIsParallelDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-BlockStatement-generalization"
                xmi:uuid="a0be8bb3-9854-4eeb-aee0-81d1caea296d" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BlockStatement-block"
                xmi:uuid="01a0112c-ae0a-48de-9bbd-daaffd6b5edf" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-BlockStatement-block-ownedComment"
                    xmi:uuid="2bce8857-31dd-407c-a651-cca6a9f9bdcf" xmi:type="uml:Comment">
                    <body>The block to be executed.
</body>
                    <annotatedElement xmi:idref="Alf-BlockStatement-block"/>
                </ownedComment>
                <name>block</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_block_blockStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-BlockStatement-isParallel"
                xmi:uuid="129a237e-aa6f-4fb8-947b-ad62a1221d17" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-BlockStatement-isParallel-ownedComment"
                    xmi:uuid="b9362c65-02dc-4700-902b-52356ed58ec8" xmi:type="uml:Comment">
                    <body>Whether the statements in the block of this block statement should be executed concurrently.
</body>
                    <annotatedElement xmi:idref="Alf-BlockStatement-isParallel"/>
                </ownedComment>
                <name>isParallel</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-BlockStatement-annotationAllowed"
                xmi:uuid="1bd5e015-8c7a-47a0-9463-6ce4f9081766" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-BlockStatement-annotationAllowed-ownedComment"
                    xmi:uuid="5af3cf8b-4695-4418-8ef5-948fdad31812" xmi:type="uml:Comment">
                    <body>In addition to an @isolated annotation, a block statement may have a @parallel annotation. It may not have any arguments.
</body>
                    <annotatedElement xmi:idref="Alf-BlockStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BlockStatement-annotationAllowed-annotation"
                    xmi:uuid="46db99ed-ab80-4345-b5a1-34d37b13b310" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-BlockStatement-annotationAllowed-result"
                    xmi:uuid="e637a7dd-02b7-4ea8-ba07-5bf1da9020fe" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-BlockStatement-hasReturnValue"
                xmi:uuid="c8f1f6f1-6586-4bea-9ea0-bf7b7315e069" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-BlockStatement-hasReturnValue-ownedComment"
                    xmi:uuid="e819fe90-d73c-4a66-8415-2523d22ecf60" xmi:type="uml:Comment">
                    <body>A block statement has a return value if its block has a return value.
</body>
                    <annotatedElement xmi:idref="Alf-BlockStatement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BlockStatement-hasReturnValue-result"
                    xmi:uuid="ddd3b0aa-3b08-42ef-9f91-3ed29c12f090" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>BlockStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassifyStatement"
            xmi:uuid="7f6cb190-bfe2-4d5c-89e1-a0f253fb0827" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassifyStatement-ownedComment"
                xmi:uuid="57a6c88b-2f09-40ea-8de4-d15813008359" xmi:type="uml:Comment">
                <body>A statement that changes the classification of an object.
</body>
                <annotatedElement xmi:idref="Alf-ClassifyStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementExpression"
                xmi:uuid="04135afb-94d9-4c52-8779-f57dbe8f85ad" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementExpression-specification"
                    xmi:uuid="5c36fdb1-18bc-462e-bca2-07e224cbbc5c" xmi:type="uml:OpaqueExpression">
                    <body>The expression in a classify statement must have a class as its type and multiplicity upper bound of 1.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementExpression</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementClassNames"
                xmi:uuid="ab68d9ed-0165-4b98-98af-5dbdb2bd7c32" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementClassNames-specification"
                    xmi:uuid="9b9e75d1-1931-4cc6-a6be-325cf6202cf8" xmi:type="uml:OpaqueExpression">
                    <body>All qualified names listed in the from or to lists of a classify statement must resolve to classes.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementClassNames</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementClasses"
                xmi:uuid="f988ed41-eaa5-4013-96ae-8c07d7c07f94" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification xmi:id="Alf-ClassifyStatement-classifyStatementClasses-specification"
                    xmi:uuid="334e344c-d249-47a6-8b87-8166fee34e35" xmi:type="uml:OpaqueExpression">
                    <body>All the from and to classes of a classify statement must be subclasses of the declared type of the target expression and none of them may have a common superclass that is a subclass of the declared type of the target expression (that is, they must be disjoint subclasses).
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementClasses</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsBefore"
                xmi:uuid="fdc4c281-4be8-4534-bdd9-4de6b4c44d19" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsBefore-specification"
                    xmi:uuid="e01ea260-f344-4fc7-9cd2-e339e3a5816d" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of a classify statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsAfter"
                xmi:uuid="fea33983-b0d8-4785-8503-65caa6ecfa86" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsAfter-specification"
                    xmi:uuid="8e6786fb-1751-4d21-974b-70e559c62a8f" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a classify statement are the same as the assignments after its expression.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementFromClassDerivation"
                xmi:uuid="9abb907d-ecfb-4308-9357-47cfdabd2b1c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementFromClassDerivation-specification"
                    xmi:uuid="0a46c5d8-ced9-41fb-8c88-533e2c925a96" xmi:type="uml:OpaqueExpression">
                    <body>The from classes of a classify statement are the class referents of the qualified names in the from list for the statement.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementFromClassDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementToClassDerivation"
                xmi:uuid="1559ea75-0dd0-4d97-9d22-3e5f005b1bdf" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
                <specification
                    xmi:id="Alf-ClassifyStatement-classifyStatementToClassDerivation-specification"
                    xmi:uuid="b9db8edd-314a-4bdc-b724-5109fbc3151f" xmi:type="uml:OpaqueExpression">
                    <body>The to classes of a classify statement are the class referents of the qualified names in the to list for the statement.
</body>
                    <language>English</language>
                </specification>
                <name>classifyStatementToClassDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-ClassifyStatement-generalization"
                xmi:uuid="e77db4fc-d3ae-4cc1-a14a-792a2270af81" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-expression"
                xmi:uuid="975cb320-b56d-446a-94b5-03b11e21c1c8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifyStatement-expression-ownedComment"
                    xmi:uuid="a7a3e11a-7e96-4870-840c-48695f74db5c" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to obtain the object to be reclassified.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_classifyStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-fromList"
                xmi:uuid="03c228fb-9a7e-4faf-95dd-b7d2672e91e2" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifyStatement-fromList-ownedComment"
                    xmi:uuid="14538c13-8349-4e74-97a1-16a8183fc784" xmi:type="uml:Comment">
                    <body>A list of names of classes to be removed as types of the object.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-fromList"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifyStatement-fromList-lowerValue"
                    xmi:uuid="cbe8535f-a07c-4e53-a12f-fd2c6a95d569" xmi:type="uml:LiteralInteger"/>
                <name>fromList</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_fromList_classifyStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-toList"
                xmi:uuid="cc49961e-3d79-40f6-b72b-b56fec91516b" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifyStatement-toList-ownedComment"
                    xmi:uuid="5327caa8-2a56-4460-ade1-96dbacb54b16" xmi:type="uml:Comment">
                    <body>A list of names of classes to be added as types of the object.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-toList"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifyStatement-toList-lowerValue"
                    xmi:uuid="7241a612-5394-46b4-a593-63060faae288" xmi:type="uml:LiteralInteger"/>
                <name>toList</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_toList_classifyStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-fromClass"
                xmi:uuid="671b74f2-3487-470d-bf60-03676f4844d8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifyStatement-fromClass-ownedComment"
                    xmi:uuid="ac921851-23ff-47d8-a899-13d05cc7aeb6" xmi:type="uml:Comment">
                    <body>The classes denoted by the names in the from list.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-fromClass"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifyStatement-fromClass-lowerValue"
                    xmi:uuid="8b5ca975-9367-43e8-a3ef-06155c82c227" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-ClassifyStatement-fromClass-upperValue"
                    xmi:uuid="06290362-6105-4694-a20e-3c3bc751f971"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>fromClass</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_fromClass_classifyStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-toClass"
                xmi:uuid="598b5b1d-5c02-4b95-a841-fac20ec24bda" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifyStatement-toClass-ownedComment"
                    xmi:uuid="76607106-8bc2-4162-878d-c73169adb052" xmi:type="uml:Comment">
                    <body>The classes denoted by the names in the to list.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-toClass"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifyStatement-toClass-lowerValue"
                    xmi:uuid="6b26f406-ebdd-4762-91b3-41a09cd478bb" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-ClassifyStatement-toClass-upperValue"
                    xmi:uuid="b660dfde-6a4f-4d6f-a678-5d5f512ee5d0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>toClass</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_toClass_classifyStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifyStatement-isReclassifyAll"
                xmi:uuid="2c836763-3abf-419d-a291-80acc8c91bd1" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ClassifyStatement-isReclassifyAll-ownedComment"
                    xmi:uuid="3004cf37-f676-4f6e-86ca-3089e61762c8" xmi:type="uml:Comment">
                    <body>Whether this classify statement reclassifies all types of the target object.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifyStatement-isReclassifyAll"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-ClassifyStatement-isReclassifyAll-defaultValue"
                    xmi:uuid="c11f78f0-2d2a-45ed-baef-fdb8f2931cfb" xmi:type="uml:LiteralBoolean"/>
                <name>isReclassifyAll</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>ClassifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ConcurrentClauses"
            xmi:uuid="a2d64943-bf88-42d7-b665-15b930b1445b" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ConcurrentClauses-ownedComment"
                xmi:uuid="e05822ff-ba65-43c2-9cb4-e95cb6acd84d" xmi:type="uml:Comment">
                <body>A grouping of non-final conditional clauses to be tested concurrently.
</body>
                <annotatedElement xmi:idref="Alf-ConcurrentClauses"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore"
                xmi:uuid="c3af6816-d6ff-4dc0-9712-5cc03a85d3e7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConcurrentClauses"/>
                <specification
                    xmi:id="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore-specification"
                    xmi:uuid="e30789d6-0797-4bad-908d-4ad0c1d9c80d" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the condition of each of the clauses in a set of concurrent clauses are the same as the assignments before the concurrent clauses.
</body>
                    <language>English</language>
                </specification>
                <name>concurrentClausesAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ConcurrentClauses-concurrentClausesConditionAssignments"
                xmi:uuid="bbfac28b-a39d-4742-9e30-d266e5cb0bba" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ConcurrentClauses"/>
                <specification
                    xmi:id="Alf-ConcurrentClauses-concurrentClausesConditionAssignments-specification"
                    xmi:uuid="44b81c9a-be1a-4f03-b629-6bc389e50aa2" xmi:type="uml:OpaqueExpression">
                    <body>The same name may not be assigned in more than one conditional expression within the same concurrent set of clauses.
</body>
                    <language>English</language>
                </specification>
                <name>concurrentClausesConditionAssignments</name>
            </ownedRule>
            <generalization xmi:id="Alf-ConcurrentClauses-generalization"
                xmi:uuid="4c4b8998-0177-4e31-94a7-913b5bde4d4c" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ConcurrentClauses-clause"
                xmi:uuid="e53ad544-e72a-4660-8984-0ea99693d980" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ConcurrentClauses-clause-ownedComment"
                    xmi:uuid="c7d75966-57dc-4cb6-ba5c-ff792cb4370f" xmi:type="uml:Comment">
                    <body>The conditional clauses in the group.
</body>
                    <annotatedElement xmi:idref="Alf-ConcurrentClauses-clause"/>
                </ownedComment>
                <upperValue xmi:id="Alf-ConcurrentClauses-clause-upperValue"
                    xmi:uuid="057f8917-1076-4f5e-8144-c4abde22d763"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>clause</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-NonFinalClause"/>
                <association xmi:idref="Alf-A_clause_concurrentClauses"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ConcurrentClauses-assignmentBefore"
                xmi:uuid="d2cd6ac4-962d-4157-a355-2db996adf3c1" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ConcurrentClauses-assignmentBefore-ownedComment"
                    xmi:uuid="1dac6919-4fce-4da6-b8cc-1f1e7986de6f" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically before this group of conditional clauses.
</body>
                    <annotatedElement xmi:idref="Alf-ConcurrentClauses-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ConcurrentClauses-assignmentBefore-lowerValue"
                    xmi:uuid="5f525d7e-db5a-4cda-9d42-5bf93487011a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-ConcurrentClauses-assignmentBefore-upperValue"
                    xmi:uuid="0623e8f3-37e3-4c08-a2cd-56a91a9c0c56"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_concurrentClauses"/>
            </ownedAttribute>
            <name>ConcurrentClauses</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-EmptyStatement" xmi:uuid="235b1973-c909-4d4f-8d47-4732766d532e"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-EmptyStatement-ownedComment"
                xmi:uuid="6589e023-47cc-4dbf-a5c4-8ad4fb6fb9da" xmi:type="uml:Comment">
                <body>A statement that has no affect when executed.
</body>
                <annotatedElement xmi:idref="Alf-EmptyStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-EmptyStatement-emptyStatementAssignmentsAfter"
                xmi:uuid="68110547-7cca-44d0-b922-cfae78cd8aad" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EmptyStatement"/>
                <specification
                    xmi:id="Alf-EmptyStatement-emptyStatementAssignmentsAfter-specification"
                    xmi:uuid="efa38cdb-e2be-4e08-aa20-344ac50797a0" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after and empty statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>emptyStatementAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-EmptyStatement-generalization"
                xmi:uuid="dbd84db9-291d-4bd9-a9a3-0ebd70d0eca8" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedOperation xmi:id="Alf-EmptyStatement-annotationAllowed"
                xmi:uuid="d5d116fd-74cd-4230-bb6e-99e1dd6072d8" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-EmptyStatement-annotationAllowed-ownedComment"
                    xmi:uuid="5e5c1657-9b38-4290-97ab-16d2d93e3ecb" xmi:type="uml:Comment">
                    <body>An empty statement may not have any annotations.
</body>
                    <annotatedElement xmi:idref="Alf-EmptyStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EmptyStatement-annotationAllowed-annotation"
                    xmi:uuid="33ef3dd4-af11-4b2e-b5b3-9b7373473b5a" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EmptyStatement-annotationAllowed-result"
                    xmi:uuid="f21fbdef-b9c9-4113-96fc-d4b72f1e268e" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>EmptyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-AcceptBlock" xmi:uuid="5a62d835-9ed4-4488-b153-190eba3e5d6f"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-AcceptBlock-ownedComment"
                xmi:uuid="042fa5f6-8981-45bb-be18-cdcba63b2c40" xmi:type="uml:Comment">
                <body>A block of an accept statement that accepts one or more signals.
</body>
                <annotatedElement xmi:idref="Alf-AcceptBlock"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-AcceptBlock-acceptBlockSignalDerivation"
                xmi:uuid="431be300-2372-496d-bd0b-f3d5995a29eb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptBlock"/>
                <specification xmi:id="Alf-AcceptBlock-acceptBlockSignalDerivation-specification"
                    xmi:uuid="2e7e162f-5051-4adc-b19e-8e56fb8ccbfb" xmi:type="uml:OpaqueExpression">
                    <body>The signals of an accept block are the referents of the signal names of the accept block.
</body>
                    <language>English</language>
                </specification>
                <name>acceptBlockSignalDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptBlock-acceptBlockSignalNames"
                xmi:uuid="0966661b-b781-4c94-bf85-ab43e17768d8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptBlock"/>
                <specification xmi:id="Alf-AcceptBlock-acceptBlockSignalNames-specification"
                    xmi:uuid="18f861b9-8cfd-4740-9e5b-542d68f7d88d" xmi:type="uml:OpaqueExpression">
                    <body>All signal names in an accept block must resolve to signals.
</body>
                    <language>English</language>
                </specification>
                <name>acceptBlockSignalNames</name>
            </ownedRule>
            <generalization xmi:id="Alf-AcceptBlock-generalization"
                xmi:uuid="c0c02c21-d3d5-4835-a334-238575e0f668" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-AcceptBlock-name"
                xmi:uuid="36e023ca-9fab-4afc-b6ff-315b7446ef01" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-AcceptBlock-name-ownedComment"
                    xmi:uuid="958d0b2a-a8f4-406c-ad54-44c267e75a0c" xmi:type="uml:Comment">
                    <body>The local name to which an accepted signal instance will be assigned.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptBlock-name"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AcceptBlock-name-lowerValue"
                    xmi:uuid="ecd61615-d917-4a82-9588-40cc270d7607" xmi:type="uml:LiteralInteger"/>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AcceptBlock-block"
                xmi:uuid="1cd59fd5-7963-4ff9-be2e-bc9b21dbcc0d" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AcceptBlock-block-ownedComment"
                    xmi:uuid="b50103d7-2800-41b5-b688-089a094bf034" xmi:type="uml:Comment">
                    <body>The body of the accept block, executed if one of the named signals is received.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptBlock-block"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-AcceptBlock-block-lowerValue"
                    xmi:uuid="c34a5318-c888-4552-9ed1-0ff98da409f2" xmi:type="uml:LiteralInteger"/>
                <name>block</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_block_acceptBlock"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AcceptBlock-signalNames"
                xmi:uuid="5c3e9b34-75bc-4508-a6e0-48985a03ec7e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AcceptBlock-signalNames-ownedComment"
                    xmi:uuid="339685aa-a414-41a1-9787-27ca9ef77231" xmi:type="uml:Comment">
                    <body>A list of names of the signals accepted by this accept block.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptBlock-signalNames"/>
                </ownedComment>
                <name>signalNames</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_signalNames_acceptBlock"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AcceptBlock-signal"
                xmi:uuid="78af6fd4-6038-4c52-84f6-d04e09825635" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AcceptBlock-signal-ownedComment"
                    xmi:uuid="f1416490-e080-46a8-8c7f-129721fd4007" xmi:type="uml:Comment">
                    <body>The signals denoted by the signal names of the accept block.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptBlock-signal"/>
                </ownedComment>
                <upperValue xmi:id="Alf-AcceptBlock-signal-upperValue"
                    xmi:uuid="8f35e432-85a8-4d89-924c-65d2ce66704d"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>signal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_signal_acceptBlock"/>
            </ownedAttribute>
            <name>AcceptBlock</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-BreakStatement" xmi:uuid="aac7ee47-a569-4590-8be9-6d7565a56f80"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-BreakStatement-ownedComment"
                xmi:uuid="99b45303-d000-4d53-b125-0aaf1cb17448" xmi:type="uml:Comment">
                <body>A statement that causes the termination of execution of an immediately enclosing block.
</body>
                <annotatedElement xmi:idref="Alf-BreakStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-BreakStatement-breakStatementTargetDerivation"
                xmi:uuid="c45fa8c6-2b5c-45bf-98f2-19b4272ac5b4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BreakStatement"/>
                <specification
                    xmi:id="Alf-BreakStatement-breakStatementTargetDerivation-specification"
                    xmi:uuid="0b268a1e-db6a-4d42-9880-ff2573713bdd" xmi:type="uml:OpaqueExpression">
                    <body>The target of a break statement is the innermost switch, while, do or for statement enclosing the break statement.
</body>
                    <language>English</language>
                </specification>
                <name>breakStatementTargetDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-BreakStatement-breakStatementNonparallelTarget"
                xmi:uuid="fd4132cb-6f7b-4429-af3d-dbfee5437fa0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-BreakStatement"/>
                <specification
                    xmi:id="Alf-BreakStatement-breakStatementNonparallelTarget-specification"
                    xmi:uuid="3e31aa45-334b-4f29-bf6d-0d50e175e9bb" xmi:type="uml:OpaqueExpression">
                    <body>The target of a break statement may not have a @parallel annotation.
</body>
                    <language>English</language>
                </specification>
                <name>breakStatementNonparallelTarget</name>
            </ownedRule>
            <generalization xmi:id="Alf-BreakStatement-generalization"
                xmi:uuid="20ebaaef-0f3a-4a52-938b-21d0d3edb9cd" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-BreakStatement-target"
                xmi:uuid="297dce00-2327-466c-9def-6226ad81326e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-BreakStatement-target-ownedComment"
                    xmi:uuid="8f357e17-13e9-421c-a667-ee50aab8f404" xmi:type="uml:Comment">
                    <body>The enclosing statement that is terminated by this break statement.
</body>
                    <annotatedElement xmi:idref="Alf-BreakStatement-target"/>
                </ownedComment>
                <name>target</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_target_breakStatement"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-BreakStatement-annotationAllowed"
                xmi:uuid="4689705c-0c86-4970-9fbe-3cef82eb9c9e" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-BreakStatement-annotationAllowed-ownedComment"
                    xmi:uuid="6e59d656-940e-451f-b34d-08c51142fa69" xmi:type="uml:Comment">
                    <body>A break statement may not have any annotations.
</body>
                    <annotatedElement xmi:idref="Alf-BreakStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-BreakStatement-annotationAllowed-annotation"
                    xmi:uuid="4a74f853-bc44-464f-8db0-059de8525a01" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-BreakStatement-annotationAllowed-result"
                    xmi:uuid="04201327-d6cc-4ff0-8762-64be0f6e2685" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>BreakStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LoopVariableDefinition"
            xmi:uuid="561cb7f7-ffaf-417d-a2eb-7b4bd767dd71" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LoopVariableDefinition-ownedComment"
                xmi:uuid="656923c4-7bc2-4cf3-a815-d8fdb177f6c0" xmi:type="uml:Comment">
                <body>The definition of a loop variable in a for statement.
</body>
                <annotatedElement xmi:idref="Alf-LoopVariableDefinition"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation"
                xmi:uuid="84bd88ef-f126-458c-970b-cb20b181a586" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation-specification"
                    xmi:uuid="e84492b3-20e8-4f35-aa53-37f3df5aad99" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a loop variable definition include the assignments after the expression (or expressions) of the definition plus a new assigned source for the loop variable itself. The assigned source for the loop variable is the loop variable definition. The multiplicity upper bound for the variable is 1. The multiplicity lower bound is 1 if the loop variable definition is the first in a for statement and 0 otherwise. If collection conversion is not required, then the variable has the inferred or declared type from the definition. If collection conversion is required, then the variable has the sequence type of the collection class.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionAssignmentAfterDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore"
                xmi:uuid="66571fb2-cc18-4fc2-8e67-2c18514ec35a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore-specification"
                    xmi:uuid="72001113-b51e-4f1b-9a17-40ccf20a0f11" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expressions of a loop variable definition are the assignments before the loop variable definition. 
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions"
                xmi:uuid="20e7e46f-acf4-4103-93bf-d859e6eb9172" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions-specification"
                    xmi:uuid="d6b9f7a7-4eac-4889-b79b-da13cc219216" xmi:type="uml:OpaqueExpression">
                    <body>If a loop variable definition has two expressions, then both expressions must have a type that conforms to type Integer and a multiplicity upper bound of 1, and  no name may be newly assigned or reassigned in more than one of the expressions.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionRangeExpressions</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName"
                xmi:uuid="a56f1ce4-f323-40fb-a6f6-d4ee3deff881" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName-specification"
                    xmi:uuid="b07bd845-fd1b-4a17-8364-a3281ee7f679" xmi:type="uml:OpaqueExpression">
                    <body>If a loop variable definition has a type name, then this name must resolve to a non-template classifier.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionTypeName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation"
                xmi:uuid="67f09378-6a18-45be-88cf-7617632a4742" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation-specification"
                    xmi:uuid="5b8e7170-ac15-4100-93de-691fc7f7fc4f" xmi:type="uml:OpaqueExpression">
                    <body>If the type of a loop variable is not inferred, then the variable has the type denoted by the type name, if it is not empty, and is untyped otherwise.  If the type is inferred, them the variable has the same as the type of the expression in its definition.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType"
                xmi:uuid="6fdd4265-6604-4030-a59b-e05ebcb100f3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType-specification"
                    xmi:uuid="d7825150-6b08-4e24-b61d-e00f8f25342d" xmi:type="uml:OpaqueExpression">
                    <body>If the type of a loop variable definition is not inferred, then the first expression of the definition must have a type that conforms to the declared type.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionDeclaredType</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation"
                xmi:uuid="204bddb9-e265-4305-a773-3e8db659c243" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation-specification"
                    xmi:uuid="fef0f58f-c796-442d-92ed-7a637659358a" xmi:type="uml:OpaqueExpression">
                    <body>Collection conversion is required for a loop variable definition if the type for the definition is a collection class and the multiplicity upper bound of the first expression is no greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionIsCollectionConversionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionVariable"
                xmi:uuid="2e744aef-dfdb-417e-97d4-9e8225e3b2da" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
                <specification
                    xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionVariable-specification"
                    xmi:uuid="7bc10128-6aa7-40cb-b282-e1b83ef26ece" xmi:type="uml:OpaqueExpression">
                    <body>The variable name given in a loop variable definition must be unassigned after the expression or expressions in the definition.
</body>
                    <language>English</language>
                </specification>
                <name>loopVariableDefinitionVariable</name>
            </ownedRule>
            <generalization xmi:id="Alf-LoopVariableDefinition-generalization"
                xmi:uuid="6f0fd3d6-d78e-4550-ace9-bdbdaea69373" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-variable"
                xmi:uuid="a89e2db8-ec64-450b-8780-958164d2de74" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-LoopVariableDefinition-variable-ownedComment"
                    xmi:uuid="b996c44a-ef73-45d7-a34d-77325c712967" xmi:type="uml:Comment">
                    <body>The name of the loop variable.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-variable"/>
                </ownedComment>
                <name>variable</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-expression1"
                xmi:uuid="0bd7675f-4f01-4c47-8f6c-79defd795701" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-expression1-ownedComment"
                    xmi:uuid="724d4829-8034-4b4d-9d77-c78bc3a4064f" xmi:type="uml:Comment">
                    <body>If there is only one expression, then this expression is evaluated to produce a sequence of values to be assigned to the loop variable on successive iterations. Otherwise it is evaluated to provide the first value of a range of values to be assigned to the loop variable.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-expression1"/>
                </ownedComment>
                <name>expression1</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression1_loopVariableDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-expression2"
                xmi:uuid="39536a43-00c4-44d5-94c0-e537b7e64a94" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-expression2-ownedComment"
                    xmi:uuid="be724eaa-5d98-499d-bd0e-a7016391f23c" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to give the second value in a range of values to be assigned to the loop variable.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-expression2"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LoopVariableDefinition-expression2-lowerValue"
                    xmi:uuid="7fb575f7-badf-4497-ac56-63ba23eb3df3" xmi:type="uml:LiteralInteger"/>
                <name>expression2</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression2_loopVariableDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-typeName"
                xmi:uuid="b6e7848f-d0a1-45db-ad8d-e7370afb290f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-typeName-ownedComment"
                    xmi:uuid="46fce1c8-951c-447f-a3ed-b8d61f4f04e7" xmi:type="uml:Comment">
                    <body>The declared type of the loop variable.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-typeName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LoopVariableDefinition-typeName-lowerValue"
                    xmi:uuid="c42d985c-ae85-4ff4-8ac6-e2c1412ba42b" xmi:type="uml:LiteralInteger"/>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_loopVariableDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-typeIsInferred"
                xmi:uuid="9b407068-a100-4cc8-8881-9e4f278d2a8f" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LoopVariableDefinition-typeIsInferred-ownedComment"
                    xmi:uuid="5393b495-c935-42cd-aaa9-890cfd5ae1d9" xmi:type="uml:Comment">
                    <body>Whether the type of the variable is inferred or declared explicitly.

NOTE: This flag is necessary to because a variable that is explicitly declared to have type "any" will have an empty typeName, just like a variable whose type is to be inferred, but, in the former case, the type is actually intended to be empty, not inferred.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-typeIsInferred"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-LoopVariableDefinition-typeIsInferred-defaultValue"
                    xmi:uuid="3bdcf7c9-0896-44ce-92b0-782fb8b18af3" xmi:type="uml:LiteralBoolean">
                    <value>true</value>
                </defaultValue>
                <name>typeIsInferred</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-isCollectionConversion"
                xmi:uuid="b27514e2-4f39-46c6-a21e-36d4b12bb6de" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-LoopVariableDefinition-isCollectionConversion-ownedComment"
                    xmi:uuid="c1e8f6e6-5db1-4054-a733-f2fdd1f35e6d" xmi:type="uml:Comment">
                    <body>Whether collection conversion is required.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-isCollectionConversion"
                    />
                </ownedComment>
                <name>isCollectionConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-type"
                xmi:uuid="aade3ff3-f204-49bb-95f2-85ea6794968f" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-type-ownedComment"
                    xmi:uuid="4d1e8d2b-85b8-440e-b7ed-0f156883f3ce" xmi:type="uml:Comment">
                    <body>The declared or inferred type of the loop variable.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-type"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LoopVariableDefinition-type-lowerValue"
                    xmi:uuid="3ca532f6-c47e-4f6d-9452-b4f754dd8346" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_type_loopVariableDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-isFirst"
                xmi:uuid="c48c216c-c29c-4c59-a16d-68603a73299c" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-LoopVariableDefinition-isFirst-ownedComment"
                    xmi:uuid="7ae4c056-ff0f-4cf5-bb82-46f4457def29" xmi:type="uml:Comment">
                    <body>Whether this definition is the first in the list of definitions in the enclosing for statement.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-isFirst"/>
                </ownedComment>
                <name>isFirst</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-assignmentBefore"
                xmi:uuid="27b43afd-f04b-4e20-8428-e41b0652da15" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-assignmentBefore-ownedComment"
                    xmi:uuid="0b1ae53a-75b7-46ea-8518-c13bc3239618" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically before this loop variable definition.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LoopVariableDefinition-assignmentBefore-lowerValue"
                    xmi:uuid="fe0bb589-8d17-45b2-8c48-80d12bd810ac" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-LoopVariableDefinition-assignmentBefore-upperValue"
                    xmi:uuid="2415ee7f-ef69-49e2-b095-a7278f17dadf"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_loopVariableDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LoopVariableDefinition-assignmentAfter"
                xmi:uuid="e9b2f2a2-1be8-4775-ae42-42b8116c4f9e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LoopVariableDefinition-assignmentAfter-ownedComment"
                    xmi:uuid="b1c63a1a-15ff-4fb6-b7d8-19190d432160" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically after this loop variable definition. This includes not only any assignments made within the statement, but also any assignments that are unchanged from before the statement.
</body>
                    <annotatedElement xmi:idref="Alf-LoopVariableDefinition-assignmentAfter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LoopVariableDefinition-assignmentAfter-lowerValue"
                    xmi:uuid="3ec4af74-90fc-4e54-bad5-39c6d240141a" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-LoopVariableDefinition-assignmentAfter-upperValue"
                    xmi:uuid="dd034c23-4a84-43e8-8e6d-f87ed90f6406"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentAfter</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentAfter_loopVariableDefinition"/>
            </ownedAttribute>
            <name>LoopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SwitchClause" xmi:uuid="319e21b1-8e69-479c-bec7-f017cec0887a"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SwitchClause-ownedComment"
                xmi:uuid="36873a22-fcb9-4c5d-abae-505314a66844" xmi:type="uml:Comment">
                <body>A clause in a switch statement with a set of cases and a sequence of statements that may be executed if one of the cases matches the switch value.
</body>
                <annotatedElement xmi:idref="Alf-SwitchClause"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SwitchClause-switchClauseAssignmentsBefore"
                xmi:uuid="959e201a-b596-4dd7-8fe9-f7e769d62fdd" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchClause"/>
                <specification xmi:id="Alf-SwitchClause-switchClauseAssignmentsBefore-specification"
                    xmi:uuid="000a6b7e-7f6b-4986-8773-4ea520183caf" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before any case expression of a  switch clause are the same as the assignments before the clause. The assignments before the block of a switch clause are the assignments after all case expressions.
</body>
                    <language>English</language>
                </specification>
                <name>switchClauseAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchClause-switchClauseCaseLocalNames"
                xmi:uuid="bee8111b-d595-4f05-9d3c-5a2b0807be69" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchClause"/>
                <specification xmi:id="Alf-SwitchClause-switchClauseCaseLocalNames-specification"
                    xmi:uuid="dd6cfdb1-7f1e-4768-b9bf-e1678c4da983" xmi:type="uml:OpaqueExpression">
                    <body>If a name is unassigned before a switch clause, then it must be unassigned after all case expressions of the clause (i.e., new local names may not be defined in case expressions).
</body>
                    <language>English</language>
                </specification>
                <name>switchClauseCaseLocalNames</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchClause-switchClauseCases"
                xmi:uuid="2f2d9cf7-ca58-4a40-a197-4afb9155ca03" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchClause"/>
                <specification xmi:id="Alf-SwitchClause-switchClauseCases-specification"
                    xmi:uuid="973f8eb4-97ba-4215-8dc5-20255a350c08" xmi:type="uml:OpaqueExpression">
                    <body>All the case expressions of a switch clause must have a multiplicity no greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>switchClauseCases</name>
            </ownedRule>
            <generalization xmi:id="Alf-SwitchClause-generalization"
                xmi:uuid="92ed0c4d-2803-4b46-b8fb-e047c220aca3" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SwitchClause-case"
                xmi:uuid="0fa206f0-1fbf-43d1-b419-f5d3fb8e63bd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SwitchClause-case-ownedComment"
                    xmi:uuid="838b4b7c-e4f8-41d4-acc8-2e18e2ef0d2d" xmi:type="uml:Comment">
                    <body>The expressions to be evaluated to provide values to test against the switch value.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchClause-case"/>
                </ownedComment>
                <upperValue xmi:id="Alf-SwitchClause-case-upperValue"
                    xmi:uuid="be9d6667-b748-4bc1-ab19-8feb374dda54"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>case</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_case_switchClause"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SwitchClause-block"
                xmi:uuid="1dba6682-e437-42d6-b909-bfd874d254f9" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SwitchClause-block-ownedComment"
                    xmi:uuid="2603a608-5267-4d24-a329-0e82940d1c84" xmi:type="uml:Comment">
                    <body>The sequence of statements that may be executed if one of the cases matches the switch value.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchClause-block"/>
                </ownedComment>
                <name>block</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_block_switchClause"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SwitchClause-assignmentsBefore"
                xmi:uuid="dae983a4-2f21-4b85-9041-2d961887a1aa" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-SwitchClause-assignmentsBefore-ownedComment"
                    xmi:uuid="ed511900-287f-4484-9c2f-42a574e4d453" xmi:type="uml:Comment">
                    <body>The assignments before a switch clause are the assignments before any case expression of the clause.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchClause-assignmentsBefore"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SwitchClause-assignmentsBefore-result"
                    xmi:uuid="9bb838c0-2ba9-419e-9dae-45eac73eea1c" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-SwitchClause-assignmentsBefore-result-lowerValue"
                        xmi:uuid="a785058d-560e-49f3-8f82-59e711bddb96"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-SwitchClause-assignmentsBefore-result-upperValue"
                        xmi:uuid="de87250e-265d-4f00-b164-4983e2e3cb66"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>assignmentsBefore</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SwitchClause-assignmentsAfter"
                xmi:uuid="eb9be631-e4c6-4965-ad1a-3ba432fc84c9" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-SwitchClause-assignmentsAfter-ownedComment"
                    xmi:uuid="b4f5d52e-93ff-42b7-a953-cdff098e46f6" xmi:type="uml:Comment">
                    <body>The assignments after a switch clause are the assignments after the block of the switch clause.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchClause-assignmentsAfter"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SwitchClause-assignmentsAfter-result"
                    xmi:uuid="cb07b88e-2196-41f8-8e88-7b7aa0c62aaf" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-SwitchClause-assignmentsAfter-result-lowerValue"
                        xmi:uuid="79adf527-3878-4575-9d69-590ca8a81de1"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-SwitchClause-assignmentsAfter-result-upperValue"
                        xmi:uuid="01f165c5-68a4-4303-ba45-61afebabdfbe"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>assignmentsAfter</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SwitchClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ForStatement" xmi:uuid="701b8fbe-662c-493e-a38e-61896c24bca3"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ForStatement-ownedComment"
                xmi:uuid="06667cfc-5f9a-4198-88fc-192cceda1e25" xmi:type="uml:Comment">
                <body>A looping statement that gives successive values to one or more loop variables on each iteration.
</body>
                <annotatedElement xmi:idref="Alf-ForStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ForStatement-forStatementAssignmentsBefore"
                xmi:uuid="93cc4437-0d62-4a21-a734-866da1b5828e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification xmi:id="Alf-ForStatement-forStatementAssignmentsBefore-specification"
                    xmi:uuid="45ee03d4-a49d-4cec-80a2-3497b31253e3" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before a loop variable definition in a for statement are the same as before the for statement.  The assignments before the body of the statement include all the assignments before the statement plus any new assignments from the loop variable definitions, except that, if the statement is parallel, the assigned sources of any names given in @parallel annotations are changed to be the for statement itself.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementAssignmentsAfter"
                xmi:uuid="b7c2bc85-a47e-4649-8e09-181ee5cb3dc8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification xmi:id="Alf-ForStatement-forStatementAssignmentsAfter-specification"
                    xmi:uuid="fd1adccb-38f7-4d65-9f81-88f0e5e874cf" xmi:type="uml:OpaqueExpression">
                    <body>The loop variables are unassigned after a for statement. Other than the loop variables, if the assigned source for a name after the body of a for statement is the same as after the for variable definitions, then the assigned source for the name after the for statement is the same as after the for variable definitions. If name has a different assigned source after the body of the for statement than after the for variable definitions, then the assigned source after the for statement is the for statement itself.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementParallelAnnotationNames"
                xmi:uuid="4bff7a44-1cbe-4c91-a952-8358921aa1f3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification
                    xmi:id="Alf-ForStatement-forStatementParallelAnnotationNames-specification"
                    xmi:uuid="b55ecd0e-07bd-4d76-a884-b37ee8bee338" xmi:type="uml:OpaqueExpression">
                    <body>A @parallel annotation of a for statement may include a list of names. Each such name must be already assigned after the loop variable definitions of the for statement, with a multiplicity upper bound other than 1. These names may only be used within the body of the for statement as the first argument for the CollectionFunctions::add behavior.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementParallelAnnotationNames</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementParallelAssignmentsAfter"
                xmi:uuid="55070fb4-e0c1-4f27-b677-8e44feb1af83" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification
                    xmi:id="Alf-ForStatement-forStatementParallelAssignmentsAfter-specification"
                    xmi:uuid="c8b851da-3a92-4943-92ce-a927266a6292" xmi:type="uml:OpaqueExpression">
                    <body>If, after the loop variable definitions of a parallel for statement, a name has an assigned source, then it must have the same assigned source after the block of the for statement. Other than for names defined in the @parallel annotation of the for statement, the assigned source for such names is the same after the for statement as before it. Any names defined in the @parallel annotation have the for statement itself as their assigned source after the for statement. Other than names given in the @parallel annotation, if a name is unassigned after the loop variable definitions, then it is considered unassigned after the for statement, even if it is assigned in the block of the for statement.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementParallelAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementVariableDefinitions"
                xmi:uuid="c5e60f97-2b02-40c7-835e-b9ad7790fc14" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification
                    xmi:id="Alf-ForStatement-forStatementVariableDefinitions-specification"
                    xmi:uuid="f827524f-509b-4537-9efb-5aef50ccd004" xmi:type="uml:OpaqueExpression">
                    <body>The isFirst attribute of the first loop variable definition for a for statement is true while the isFirst attribute if false for any other definitions.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementVariableDefinitions</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementLoopVariables"
                xmi:uuid="78691244-bd73-4ba6-8fac-a831abfd5bf5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification xmi:id="Alf-ForStatement-forStatementLoopVariables-specification"
                    xmi:uuid="0a1b5503-3648-4ccf-aec1-58e4c67827f9" xmi:type="uml:OpaqueExpression">
                    <body>The assigned sources for loop variables after the body of a for statement must be the for statement (the same as before the body). 
</body>
                    <language>English</language>
                </specification>
                <name>forStatementLoopVariables</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementIsParallelDerivation"
                xmi:uuid="9dbc488b-5853-482e-aba2-48d1a03423e8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification
                    xmi:id="Alf-ForStatement-forStatementIsParallelDerivation-specification"
                    xmi:uuid="7e9f6075-7df7-4f67-bd6a-86ff47d427d7" xmi:type="uml:OpaqueExpression">
                    <body>A for statement is parallel if it has a @parallel annotation.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementIsParallelDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ForStatement-forStatementEnclosedStatements"
                xmi:uuid="2425e16f-25fd-456a-8cce-064c58595d2b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ForStatement"/>
                <specification
                    xmi:id="Alf-ForStatement-forStatementEnclosedStatements-specification"
                    xmi:uuid="8992b063-c75b-41ec-8d6c-f00632c43953" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement for all statements in the body of a for statement are the for statement.
</body>
                    <language>English</language>
                </specification>
                <name>forStatementEnclosedStatements</name>
            </ownedRule>
            <generalization xmi:id="Alf-ForStatement-generalization"
                xmi:uuid="0cd9e917-05c7-4683-a539-90dc01c6e887" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ForStatement-body"
                xmi:uuid="a418451d-754c-4d5b-9e29-ff62c8c349da" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ForStatement-body-ownedComment"
                    xmi:uuid="3b5084d7-5836-4dc5-b20b-7f1d2256b12e" xmi:type="uml:Comment">
                    <body>The sequence of statements to be iteratively executed.
</body>
                    <annotatedElement xmi:idref="Alf-ForStatement-body"/>
                </ownedComment>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_forStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ForStatement-variableDefinition"
                xmi:uuid="4a8dcaad-5831-4d87-87c6-eced9478c7cf" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ForStatement-variableDefinition-ownedComment"
                    xmi:uuid="7cc1206b-37e8-4c79-b68b-a6230d4ffb12" xmi:type="uml:Comment">
                    <body>A list of definitions of one or more loop variables.
</body>
                    <annotatedElement xmi:idref="Alf-ForStatement-variableDefinition"/>
                </ownedComment>
                <upperValue xmi:id="Alf-ForStatement-variableDefinition-upperValue"
                    xmi:uuid="e6e73357-54e7-4e06-8b86-b393e78a8d18"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>variableDefinition</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_variableDefinition_forStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ForStatement-isParallel"
                xmi:uuid="3dc436d1-fe59-4c2c-b2eb-e1cedf22694a" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ForStatement-isParallel-ownedComment"
                    xmi:uuid="778e3321-f01b-4606-a696-ba4be382b33b" xmi:type="uml:Comment">
                    <body>Whether the for statement is parallel.
</body>
                    <annotatedElement xmi:idref="Alf-ForStatement-isParallel"/>
                </ownedComment>
                <name>isParallel</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ForStatement-annotationAllowed"
                xmi:uuid="5f8bdef2-28b6-47c4-891a-c25339aa1dc5" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-ForStatement-annotationAllowed-ownedComment"
                    xmi:uuid="eeae665f-9050-494c-a274-e5b41879b705" xmi:type="uml:Comment">
                    <body>In addition to an @isolated annotation, a for statement may have a @parallel annotation.
</body>
                    <annotatedElement xmi:idref="Alf-ForStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ForStatement-annotationAllowed-annotation"
                    xmi:uuid="5ce4d5ea-9fd1-4ae9-b5e9-f2653f86f918" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ForStatement-annotationAllowed-result"
                    xmi:uuid="611658ae-5f6d-4be4-8e35-5087d4c11854" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ForStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-IfStatement" xmi:uuid="1b11a68d-0a03-41fe-939e-507cf776f308"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-IfStatement-ownedComment"
                xmi:uuid="5acea744-91a6-4946-a92a-4dfe882b116a" xmi:type="uml:Comment">
                <body>A conditional statement that executes (at most) one of a set of clauses based on boolean conditions.
</body>
                <annotatedElement xmi:idref="Alf-IfStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-IfStatement-ifStatementAssignmentsBefore"
                xmi:uuid="824c4f68-180d-46ef-8b80-3c363d329638" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IfStatement"/>
                <specification xmi:id="Alf-IfStatement-ifStatementAssignmentsBefore-specification"
                    xmi:uuid="87f5d043-0bbc-4b42-a710-fe39d4516e9d" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before each non-final clause of an if statement are the same as the assignments before the if statement, adjusted for known nulls and non-nulls and type classifications due to the failure of the conditions in all previous sets of concurrent clauses. If the statement has a final clause, then the assignments before that clause are also the same as the assignments before the if statement, adjusted for the failure of the conditions of all previous clauses.
</body>
                    <language>English</language>
                </specification>
                <name>ifStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IfStatement-ifStatementAssignmentsAfter"
                xmi:uuid="6c864cc5-1c94-4d1c-936e-3e39531e1493" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IfStatement"/>
                <specification xmi:id="Alf-IfStatement-ifStatementAssignmentsAfter-specification"
                    xmi:uuid="fa90a299-db76-4573-9c9e-855c07057f39" xmi:type="uml:OpaqueExpression">
                    <body>Any name that is unassigned before an if statement and is assigned in one or more clauses of the if statement, has, after the if statement, a type that is is the effective common ancestor of the types of the name in each clause in which it is defined. For a name that has an assigned source after any clause of an if statement that is different than before that clause, then the assigned source after the if statement is the if statement, with a multiplicity lower bound that is the minimum of the lower bound for the name in each clause and a multiplicity upper bound that is the maximum for the name in each clause (where the name is considered to have multiplicity [0..0] for clauses in which it is not defined and unchanged multiplicity for an implicit final clause, unless the if statement is assured). Otherwise, the assigned source of a name after the if statement is the same as before the if statement.
</body>
                    <language>English</language>
                </specification>
                <name>ifStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IfStatement-ifStatementEnclosedStatements"
                xmi:uuid="9237814b-26d9-4e3d-b523-517bb2f2b93d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IfStatement"/>
                <specification xmi:id="Alf-IfStatement-ifStatementEnclosedStatements-specification"
                    xmi:uuid="60767ec8-68b7-4afb-b8aa-1f99de3ba55d" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement of all the statements in the bodies of all non-final clauses and in the final clause (if any) of an if statement is the if statement.
</body>
                    <language>English</language>
                </specification>
                <name>ifStatementEnclosedStatements</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IfStatement-ifStatementIsAssuredDerivation"
                xmi:uuid="41fd5ed9-531c-402c-a048-dfd3fb98bf34" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IfStatement"/>
                <specification xmi:id="Alf-IfStatement-ifStatementIsAssuredDerivation-specification"
                    xmi:uuid="d754fa5d-b8c5-4766-a877-fb5a2693e029" xmi:type="uml:OpaqueExpression">
                    <body>An if statement is assured if it has an @assured annotation.
</body>
                    <language>English</language>
                </specification>
                <name>ifStatementIsAssuredDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-IfStatement-ifStatementIsDeterminateDerivation"
                xmi:uuid="ca83fa4b-4a9d-4a25-848c-e36db6db38a1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-IfStatement"/>
                <specification
                    xmi:id="Alf-IfStatement-ifStatementIsDeterminateDerivation-specification"
                    xmi:uuid="e9d0aec3-03c2-4544-8340-0fd4352eb58a" xmi:type="uml:OpaqueExpression">
                    <body>An if statement is determinate if it has an @determinate annotation.
</body>
                    <language>English</language>
                </specification>
                <name>ifStatementIsDeterminateDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-IfStatement-generalization"
                xmi:uuid="f39aaa25-e543-4b41-8eae-d09211a47e83" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-IfStatement-nonFinalClauses"
                xmi:uuid="abd818cf-0d5d-4e7b-8819-5301e7b0b71e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IfStatement-nonFinalClauses-ownedComment"
                    xmi:uuid="34968467-6e69-4f0f-9760-85f75672cffb" xmi:type="uml:Comment">
                    <body>A list of groupings of concurrent clauses that are to be checked sequentially for a successful condition.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-nonFinalClauses"/>
                </ownedComment>
                <upperValue xmi:id="Alf-IfStatement-nonFinalClauses-upperValue"
                    xmi:uuid="e99d04df-7c88-4e33-91e3-6707c9fc3e89"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>nonFinalClauses</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ConcurrentClauses"/>
                <association xmi:idref="Alf-A_nonFinalClauses_ifStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IfStatement-finalClause"
                xmi:uuid="c3ac28ab-9ef2-45f8-944a-8c4b7ce8d201" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-IfStatement-finalClause-ownedComment"
                    xmi:uuid="d1026ef0-e49c-4ad5-b4ab-1d5d57d90067" xmi:type="uml:Comment">
                    <body>A sequence of statements to be executed if no other clause has a successful condition.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-finalClause"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-IfStatement-finalClause-lowerValue"
                    xmi:uuid="25512af2-cb11-4af8-b71b-cbf9348cb7ca" xmi:type="uml:LiteralInteger"/>
                <name>finalClause</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_finalClause_ifStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IfStatement-isAssured"
                xmi:uuid="00fb512b-6eae-4137-8319-7b8a9569b223" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-IfStatement-isAssured-ownedComment"
                    xmi:uuid="ff42e1a2-2abc-4ed7-9bec-bce51126d479" xmi:type="uml:Comment">
                    <body>Whether at least one condition in the if statement is assured to evaluate to true.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-isAssured"/>
                </ownedComment>
                <name>isAssured</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-IfStatement-isDeterminate"
                xmi:uuid="2bc5cf80-ec11-4940-a8ac-7386b5ca3fad" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-IfStatement-isDeterminate-ownedComment"
                    xmi:uuid="f5d2fa99-70ca-4a5d-a381-39ca7f8af598" xmi:type="uml:Comment">
                    <body>Whether at most one condition in the if statement will ever to evaluate to true.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-isDeterminate"/>
                </ownedComment>
                <name>isDeterminate</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-IfStatement-annotationAllowed"
                xmi:uuid="a07c832d-77b1-4590-9248-2690364dc89f" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-IfStatement-annotationAllowed-ownedComment"
                    xmi:uuid="b598e4b3-bd8b-4d89-a7a4-ccf5319a0367" xmi:type="uml:Comment">
                    <body>In addition to an @isolated annotation, an if statement may have @assured and @determinate annotations. They may not have arguments.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-IfStatement-annotationAllowed-annotation"
                    xmi:uuid="d7d98a14-e2ae-4896-996d-a9d435c25474" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-IfStatement-annotationAllowed-result"
                    xmi:uuid="4e95d910-9383-4293-9ee4-463b0a6bb161" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-IfStatement-hasReturnValue"
                xmi:uuid="68619872-c6c4-46d7-bc74-fee1d3aff8b9" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-IfStatement-hasReturnValue-ownedComment"
                    xmi:uuid="1580f74f-4aa8-4bfe-ae77-1a177a38823d" xmi:type="uml:Comment">
                    <body>An if statement has a return value if the bodies of all its clauses have return values, and it either has a final clause or is assured.
</body>
                    <annotatedElement xmi:idref="Alf-IfStatement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-IfStatement-hasReturnValue-result"
                    xmi:uuid="0e17be8c-fe3f-478c-a389-9e4236e662f9" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>IfStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NonFinalClause" xmi:uuid="1968c0c6-2530-4810-9639-483ae8fad9bf"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NonFinalClause-ownedComment"
                xmi:uuid="9ec0b188-3e7c-46d4-a1b2-5e591cf132ce" xmi:type="uml:Comment">
                <body>A clause of an if statement with a conditional expression and a sequence of statements that may be executed if the condition is true.
</body>
                <annotatedElement xmi:idref="Alf-NonFinalClause"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody"
                xmi:uuid="a0c71675-eac3-4e2a-9c19-cd1b5afafb45" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NonFinalClause"/>
                <specification
                    xmi:id="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody-specification"
                    xmi:uuid="51d19f26-3a69-4bb6-a9c2-2174e52c3102" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the body of a non-final clause are the assignments after the condition, adjusted for known null and non-null names and type classifications due to the condition being true.
</body>
                    <language>English</language>
                </specification>
                <name>nonFinalClauseAssignmentsBeforeBody</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseConditionLocalNames"
                xmi:uuid="548638d6-ae05-485c-94fb-6fa471ca38a3" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NonFinalClause"/>
                <specification
                    xmi:id="Alf-NonFinalClause-nonFinalClauseConditionLocalNames-specification"
                    xmi:uuid="900bc07d-6150-4313-97a1-291458f65a53" xmi:type="uml:OpaqueExpression">
                    <body>If a name is unassigned before the condition expression of a non-final clause, then it must be unassigned after that expression (i.e., new local names may not be defined in the condition).
</body>
                    <language>English</language>
                </specification>
                <name>nonFinalClauseConditionLocalNames</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseConditionType"
                xmi:uuid="b92e3f22-589a-45ae-94a6-24b38ec17140" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NonFinalClause"/>
                <specification xmi:id="Alf-NonFinalClause-nonFinalClauseConditionType-specification"
                    xmi:uuid="d1408156-aa79-4c95-8e54-60043f6d9aba" xmi:type="uml:OpaqueExpression">
                    <body>The condition of a non-final clause must have a type that conforms to type Boolean and multiplicity [1..1].
</body>
                    <language>English</language>
                </specification>
                <name>nonFinalClauseConditionType</name>
            </ownedRule>
            <generalization xmi:id="Alf-NonFinalClause-generalization"
                xmi:uuid="0a480745-d3b0-47e0-acd7-87e62a1cdfa4" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NonFinalClause-condition"
                xmi:uuid="1f306e14-63ac-4357-aa6d-c0bfa5ca492b" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NonFinalClause-condition-ownedComment"
                    xmi:uuid="6fc3d5ab-c4de-4c38-a97f-d0878ca861bd" xmi:type="uml:Comment">
                    <body>The expression that is evaluated to determine whether the clause body may be executed.
</body>
                    <annotatedElement xmi:idref="Alf-NonFinalClause-condition"/>
                </ownedComment>
                <name>condition</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_condition_nonFinalClause"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NonFinalClause-body"
                xmi:uuid="9ca6cef5-457a-47c3-9834-0467e504c91a" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NonFinalClause-body-ownedComment"
                    xmi:uuid="8520628b-3997-4671-8edd-e089f8f6d23a" xmi:type="uml:Comment">
                    <body>The sequence of statements that may be executed if the condition evaluates to true.
</body>
                    <annotatedElement xmi:idref="Alf-NonFinalClause-body"/>
                </ownedComment>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_nonFinalClause"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-NonFinalClause-assignmentsBefore"
                xmi:uuid="40ea69bd-07aa-41c2-94f9-07a4cdda1c77" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NonFinalClause-assignmentsBefore-ownedComment"
                    xmi:uuid="fbc97d32-459b-4ec8-8c85-acb7ff4f5ee6" xmi:type="uml:Comment">
                    <body>The assignments before a non-final clause are the assignments before the condition of the clause.
</body>
                    <annotatedElement xmi:idref="Alf-NonFinalClause-assignmentsBefore"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NonFinalClause-assignmentsBefore-result"
                    xmi:uuid="1d4c1f33-7c60-4db6-9ec8-c2d9b90c69d6" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NonFinalClause-assignmentsBefore-result-lowerValue"
                        xmi:uuid="84153249-459d-4bd0-b52f-72fc16f8853f"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NonFinalClause-assignmentsBefore-result-upperValue"
                        xmi:uuid="c6a417d9-235e-435c-8982-e0898001bba5"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>assignmentsBefore</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-NonFinalClause-assignmentsAfter"
                xmi:uuid="483ff761-896b-4faf-b792-55842fc863a7" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-NonFinalClause-assignmentsAfter-ownedComment"
                    xmi:uuid="a5a16c8a-2dd1-454e-98ed-b41c4c83a6a8" xmi:type="uml:Comment">
                    <body>The assignments after a non-final clause are the assignments after the block of the clause.
</body>
                    <annotatedElement xmi:idref="Alf-NonFinalClause-assignmentsAfter"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NonFinalClause-assignmentsAfter-result"
                    xmi:uuid="4ca48fb4-0de5-44c1-b492-f0c93a33a18a" xmi:type="uml:Parameter">
                    <lowerValue xmi:id="Alf-NonFinalClause-assignmentsAfter-result-lowerValue"
                        xmi:uuid="a2e82acb-f1b6-48b0-9d6e-84e51a66881d"
                        xmi:type="uml:LiteralInteger"/>
                    <upperValue xmi:id="Alf-NonFinalClause-assignmentsAfter-result-upperValue"
                        xmi:uuid="cbcb0953-4af1-4d2c-8648-ad6e3a85f602"
                        xmi:type="uml:LiteralUnlimitedNatural">
                        <value>*</value>
                    </upperValue>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                    <type xmi:idref="Alf-AssignedSource"/>
                </ownedParameter>
                <name>assignmentsAfter</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>NonFinalClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-AcceptStatement"
            xmi:uuid="33e3e00c-7062-4808-a56d-dd1730664363" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-AcceptStatement-ownedComment"
                xmi:uuid="83713644-319b-47a6-8975-8d52f11758b8" xmi:type="uml:Comment">
                <body>A statement used to accept the receipt of instances of one or more signals.
</body>
                <annotatedElement xmi:idref="Alf-AcceptStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementContext"
                xmi:uuid="09af63d5-c4f0-4b47-ab2e-408b083b90a7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification xmi:id="Alf-AcceptStatement-acceptStatementContext-specification"
                    xmi:uuid="486f6a3d-7f77-49dc-8238-c07e45bf13e5" xmi:type="uml:OpaqueExpression">
                    <body>An accept statement can only be used within the definition of an active behavior or the classifier behavior of an active class.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementContext</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementSignals"
                xmi:uuid="204ade62-b09f-4774-a3e7-821d98a3a50e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification xmi:id="Alf-AcceptStatement-acceptStatementSignals-specification"
                    xmi:uuid="91be2191-a679-4b21-a39e-e411ae778096" xmi:type="uml:OpaqueExpression">
                    <body>The containing behavior of an accept statement must have receptions for all signals from all accept blocks of the accept statement. No signal may be referenced in more than one accept block of an accept statement.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementSignals</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementNames"
                xmi:uuid="9c2e9008-618c-4fae-ac50-128e6dfc8369" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification xmi:id="Alf-AcceptStatement-acceptStatementNames-specification"
                    xmi:uuid="ebf7cc77-3ee9-4449-83db-a6c25948d9a6" xmi:type="uml:OpaqueExpression">
                    <body>Any name defined in an accept block of an accept statement must be unassigned before the accept statement.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementNames</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName"
                xmi:uuid="2f0784c4-ec9a-44b4-a7bf-8e416754db0e" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName-specification"
                    xmi:uuid="fd0f1556-06b5-4bac-908d-51d0b5e1c976" xmi:type="uml:OpaqueExpression">
                    <body>A local name specified in the accept block of a simple accept statement has the accept statement as its assigned source after the accept statement. The type of the local name is the effective common ancestor of the specified signals, if one exists, and it is untyped otherwise.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementSimpleAcceptLocalName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName"
                xmi:uuid="e881b13e-b7f3-49cf-b790-374cf924f4d2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName-specification"
                    xmi:uuid="c84074ce-6250-43bd-9e4d-bb62a779ddb4" xmi:type="uml:OpaqueExpression">
                    <body>For a compound accept statement, a local name defined in an accept block has the accept block as its assigned source before the block associated with the accept block. The type of the local name is the effective common ancestor of the specified signals for that accept clause, if one exists, and it is untyped otherwise. However, the local name is considered unassigned after the accept statement.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementCompoundAcceptLocalName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsBefore"
                xmi:uuid="469af47c-9849-4fb2-8ae7-b2aa2fbed523" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsBefore-specification"
                    xmi:uuid="1548a739-25df-4a00-9c32-e361917146b5" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before any block of an accept statement are the assignments before the accept statement.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsAfter"
                xmi:uuid="59b0f843-23d6-431a-a9ef-9c683f1b1e35" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsAfter-specification"
                    xmi:uuid="726aac29-fb42-4b89-8c3a-bf03625857dc" xmi:type="uml:OpaqueExpression">
                    <body>If a name is assigned in any block of an accept statement, then the assigned source of the name after the accept statement is the accept statement itself.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementNewAssignments"
                xmi:uuid="effdccce-4daf-4494-bbcc-310475ed2697" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementNewAssignments-specification"
                    xmi:uuid="c74d3926-f078-4546-88f0-26a7a5394ba1" xmi:type="uml:OpaqueExpression">
                    <body>Any name that is unassigned before an accept statement and is assigned in one or more blocks of the accept statement, has, after the accept statement, a type that is is the effective common ancestor of the types of the name in each block in which it is defined, with a multiplicity lower bound that is the minimum of the lower bound for the name in each block (where it is considered to have multiplicity lower bound of zero for blocks in which it is not defined), and a multiplicity upper bound that is the maximum for the name in each block in which it is defined.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementNewAssignments</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementIsSimpleDerivation"
                xmi:uuid="c53ff868-e8ed-4cbb-874d-796decec130c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementIsSimpleDerivation-specification"
                    xmi:uuid="b6e51581-9f64-404a-a1d5-02bfd2dda791" xmi:type="uml:OpaqueExpression">
                    <body>An accept statement is simple if it has exactly one accept block and that accept block does not have a block.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementIsSimpleDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementEnclosedStatements"
                xmi:uuid="fc96a2ed-c123-4a56-862d-11ab5b81f23d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AcceptStatement"/>
                <specification
                    xmi:id="Alf-AcceptStatement-acceptStatementEnclosedStatements-specification"
                    xmi:uuid="3c06cd12-7224-4974-8dfa-1f520f6f33ba" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement for all statements in the blocks of all accept blocks of an accept statement is the accept statement.
</body>
                    <language>English</language>
                </specification>
                <name>acceptStatementEnclosedStatements</name>
            </ownedRule>
            <generalization xmi:id="Alf-AcceptStatement-generalization"
                xmi:uuid="29123c1a-be80-48ac-a4db-f03660615f20" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-AcceptStatement-acceptBlock"
                xmi:uuid="a4f65f07-0f89-4c55-99e4-21f79cede254" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AcceptStatement-acceptBlock-ownedComment"
                    xmi:uuid="00fb0617-7542-4876-8897-c274a7a5821a" xmi:type="uml:Comment">
                    <body>One or more blocks for accepting alternate groups of signals.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptStatement-acceptBlock"/>
                </ownedComment>
                <upperValue xmi:id="Alf-AcceptStatement-acceptBlock-upperValue"
                    xmi:uuid="bf9dbd8a-1464-4514-866b-0c9786ca31cb"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>acceptBlock</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-AcceptBlock"/>
                <association xmi:idref="Alf-A_acceptBlock_acceptStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AcceptStatement-behavior"
                xmi:uuid="b511aea5-13bd-4a48-95e4-717722712c3b" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-AcceptStatement-behavior-ownedComment"
                    xmi:uuid="14b20fd5-824f-4e03-80e7-372f2bd46624" xmi:type="uml:Comment">
                    <body>The behavior containing the accept statement.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptStatement-behavior"/>
                </ownedComment>
                <name>behavior</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_behavior_acceptStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-AcceptStatement-isSimple"
                xmi:uuid="6b1512b2-3828-42eb-8223-bf92be907fe9" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-AcceptStatement-isSimple-ownedComment"
                    xmi:uuid="a15587ba-bed3-4b05-b3c5-91ed38ad3bdc" xmi:type="uml:Comment">
                    <body>Whether the accept statement is simple or not.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptStatement-isSimple"/>
                </ownedComment>
                <name>isSimple</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-AcceptStatement-hasReturnValue"
                xmi:uuid="7f39e162-a87c-4e6c-b08a-7cf4f49685e7" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-AcceptStatement-hasReturnValue-ownedComment"
                    xmi:uuid="05ab0f07-b363-46c1-beee-7203abae9fb6" xmi:type="uml:Comment">
                    <body>An accept statement has a return value if all of its accept clauses have return values.
</body>
                    <annotatedElement xmi:idref="Alf-AcceptStatement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AcceptStatement-hasReturnValue-result"
                    xmi:uuid="5c5b4562-e7ee-4c91-8130-625008c3cca8" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>AcceptStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-InLineStatement"
            xmi:uuid="f44f3149-3106-4469-a026-dd7e2f529449" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-InLineStatement-ownedComment"
                xmi:uuid="a90e2994-463c-4fc9-ba37-f841f7bb8cd9" xmi:type="uml:Comment">
                <body>A statement that executes code in a language other than Alf.
</body>
                <annotatedElement xmi:idref="Alf-InLineStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-InLineStatement-inLineStatementAssignmentsAfter"
                xmi:uuid="414ea1ac-5167-4ea9-8d1b-c9b8b51ea0bb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-InLineStatement"/>
                <specification
                    xmi:id="Alf-InLineStatement-inLineStatementAssignmentsAfter-specification"
                    xmi:uuid="bd58d77c-e233-4e9d-ad13-31a2452faf94" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after an in-line statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>inLineStatementAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-InLineStatement-generalization"
                xmi:uuid="39588efe-73d2-4bbe-a191-1ba98fbe6575" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-InLineStatement-language"
                xmi:uuid="4a371114-13f9-431b-8351-590de40471fa" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-InLineStatement-language-ownedComment"
                    xmi:uuid="4119e2a9-2d11-4176-affd-7106240da4ab" xmi:type="uml:Comment">
                    <body>The name of the language in which the code is written.
</body>
                    <annotatedElement xmi:idref="Alf-InLineStatement-language"/>
                </ownedComment>
                <name>language</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-InLineStatement-code"
                xmi:uuid="a94962ad-38c5-4f2d-8495-06fd760cb319" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-InLineStatement-code-ownedComment"
                    xmi:uuid="b78b57e6-a872-475d-b167-9ae87f9016e7" xmi:type="uml:Comment">
                    <body>The in-line code to be executed.
</body>
                    <annotatedElement xmi:idref="Alf-InLineStatement-code"/>
                </ownedComment>
                <name>code</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>InLineStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-LocalNameDeclarationStatement"
            xmi:uuid="ef00d9dc-f5c2-4352-a0c7-b61f056bcfaa" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-ownedComment"
                xmi:uuid="a4e5346a-eebc-4d57-99c0-41969418d8d7" xmi:type="uml:Comment">
                <body>A statement that declares the type of a local name and assigns it an initial value.
</body>
                <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore"
                xmi:uuid="fd4c5f29-2963-422a-8d8a-d5451949d12c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore-specification"
                    xmi:uuid="c1cbe63a-4bb3-4914-a254-8bc1ecac8ba3" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of a local name declaration statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType"
                xmi:uuid="66035223-6c50-4594-ba86-15902dad2b29" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType-specification"
                    xmi:uuid="f740b818-9f7b-486f-83ea-5a17c9a4f8f8" xmi:type="uml:OpaqueExpression">
                    <body>If the type name in a local name declaration statement is not empty, then it must resolve to a non-template classifier and the expression must be assignable to that classifier.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementType</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName"
                xmi:uuid="87fe8e56-de24-4d94-9aa9-426fcff1f0c0" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName-specification"
                    xmi:uuid="bd6942d3-2882-4b83-b3d1-29f5986ac5d6" xmi:type="uml:OpaqueExpression">
                    <body>The local name in a local name declaration statement must be unassigned before the statement and before the expression in the statement. It must remain unassigned after the expression.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementLocalName</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter"
                xmi:uuid="0fbe89ec-8250-4060-87a3-cfa1c0baf257" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter-specification"
                    xmi:uuid="d40f3898-b0a8-4366-b7fb-bc2b00f2237d" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a local name declaration statement are the assignments after the expression of the statement plus a new assignment for the local name defined by the statement. The assigned source for the local name is the local name declaration statement. The local name has the type denoted by the type name if this is not empty and is untyped otherwise. The multiplicity lower bound of the local name is 0 if the expression has a lower bound of 0, otherwise it is 1. If the statement has multiplicity, then the multiplicity upper bound of the local name is *, otherwise it is 1.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity"
                xmi:uuid="72fef4ce-efff-47eb-a551-7f657c67af71" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity-specification"
                    xmi:uuid="2c35dcae-3d48-4d71-b728-ed5975b977ab" xmi:type="uml:OpaqueExpression">
                    <body>If a local name declaration statement does not have multiplicity, then the multiplicity of upper bound of the assigned expression must not be greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementExpressionMultiplicity</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation"
                xmi:uuid="5df40a47-3bef-40f3-9859-1435f58ef873" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation-specification"
                    xmi:uuid="05836f22-3544-4330-96a7-8d30f63a163c" xmi:type="uml:OpaqueExpression">
                    <body>The type of a local name declaration statement with a type name is the single classifier referent of the type name. Otherwise the type is empty.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementTypeDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionType"
                xmi:uuid="bc344dc9-b04a-4d21-aada-927f5e4f7fd4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <specification
                    xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionType-specification"
                    xmi:uuid="7dcd652d-3248-4f2d-9016-16841b1bea43" xmi:type="uml:OpaqueExpression">
                    <body>If the expression of a local name declaration statement is an instance creation expression with no constructor, and the type of the statement is a class or (structured) data type, then the referent of the expression is the type of the statement. If the expression of a local name declaration statement is a sequence construction expression with no type name, but with non-empty elements, then the type of the expression is the type of the statement and the expression has multiplicity if and only if the statement does.
</body>
                    <language>English</language>
                </specification>
                <name>localNameDeclarationStatementExpressionType</name>
            </ownedRule>
            <generalization xmi:id="Alf-LocalNameDeclarationStatement-generalization"
                xmi:uuid="80b0aa6b-263b-4699-934e-3be675b62e20" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-name"
                xmi:uuid="71e15721-653a-4bd6-b951-902573206b11" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-name-ownedComment"
                    xmi:uuid="4ac0d599-422e-4d89-8f0d-a5052004795d" xmi:type="uml:Comment">
                    <body>The local name being declared.
</body>
                    <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-expression"
                xmi:uuid="d3f80fa6-4274-4c5a-987a-b5494ed5db34" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-expression-ownedComment"
                    xmi:uuid="0804648e-d2c3-445f-b968-0d54a0e93df4" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to provide the initial value to be assigned to the local name.
</body>
                    <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_localNameDeclarationStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity"
                xmi:uuid="c21bf56f-1a8e-4d5a-8600-1a7f92311384" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment
                    xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity-ownedComment"
                    xmi:uuid="9145904f-ed7e-470d-a8bd-27c89522e258" xmi:type="uml:Comment">
                    <body>Whether the local name is to have a multiplicity upper bound of * rather than 1.
</body>
                    <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-hasMultiplicity"
                    />
                </ownedComment>
                <defaultValue
                    xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity-defaultValue"
                    xmi:uuid="0632b0e9-1be5-44ac-acce-156a788f84dd" xmi:type="uml:LiteralBoolean"/>
                <name>hasMultiplicity</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-typeName"
                xmi:uuid="84c30ee3-f85d-48d7-9b4f-5859aaa958ec" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-typeName-ownedComment"
                    xmi:uuid="b7f79716-ce34-4bd2-8e1f-5fd08cf943e2" xmi:type="uml:Comment">
                    <body>The declared type of the local name.
</body>
                    <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-typeName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LocalNameDeclarationStatement-typeName-lowerValue"
                    xmi:uuid="a2f77971-03e0-4b93-9c76-e4cf51b74f61" xmi:type="uml:LiteralInteger"/>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_localNameDeclarationStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-type"
                xmi:uuid="876d2b32-db5a-4906-94f5-1165e0416615" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-type-ownedComment"
                    xmi:uuid="d2996a72-01c8-4655-be40-2ad8071979e6" xmi:type="uml:Comment">
                    <body>The type declared for the given local name.
</body>
                    <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-type"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-LocalNameDeclarationStatement-type-lowerValue"
                    xmi:uuid="710059cc-17f4-4902-9068-32664e138425" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_type_localNameDeclarationStatement"/>
            </ownedAttribute>
            <name>LocalNameDeclarationStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Annotation" xmi:uuid="16f69a43-ed51-4744-aa45-8bca6e538bf5"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Annotation-ownedComment"
                xmi:uuid="d4556e93-a71a-4705-a4a1-e11449b13477" xmi:type="uml:Comment">
                <body>An identified modification to the behavior of an annotated statement.
</body>
                <annotatedElement xmi:idref="Alf-Annotation"/>
            </ownedComment>
            <generalization xmi:id="Alf-Annotation-generalization"
                xmi:uuid="ac39ffc1-9133-48ad-bb07-3e1c1f2e8781" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Annotation-identifier"
                xmi:uuid="d78058b5-39f7-4436-8bc9-a2af8a1cc329" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-Annotation-identifier-ownedComment"
                    xmi:uuid="289aa16d-a9ab-4d60-9266-87dc58855705" xmi:type="uml:Comment">
                    <body>The name of the annotation.
</body>
                    <annotatedElement xmi:idref="Alf-Annotation-identifier"/>
                </ownedComment>
                <name>identifier</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Annotation-argument"
                xmi:uuid="27cca583-2f7d-4e84-823d-a7e4c9688f80" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-Annotation-argument-ownedComment"
                    xmi:uuid="8b173dc1-ee20-466c-acf0-96db976c6a74" xmi:type="uml:Comment">
                    <body>If permitted by the annotation, an optional list of local names relevant to the annotation.
</body>
                    <annotatedElement xmi:idref="Alf-Annotation-argument"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Annotation-argument-lowerValue"
                    xmi:uuid="e60272b3-b910-440d-9123-4d0438acea5f" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Annotation-argument-upperValue"
                    xmi:uuid="77da1a2e-895d-42e1-889f-af4f603a8d73"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>argument</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>Annotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Block" xmi:uuid="b28ce221-15ea-4c6c-ae87-e1780d559044"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Block-ownedComment"
                xmi:uuid="651746b9-958d-4903-bf28-edd6b3a6b2c2" xmi:type="uml:Comment">
                <body>A grouped sequence of statements.
</body>
                <annotatedElement xmi:idref="Alf-Block"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-Block-blockAssignmentsBeforeStatements"
                xmi:uuid="bc492752-0521-4ae8-82f3-a7ce7b4c6d32" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Block"/>
                <specification xmi:id="Alf-Block-blockAssignmentsBeforeStatements-specification"
                    xmi:uuid="55580304-196e-4974-9035-34f1ac930a54" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before each statement in a block other than the first are the same as the assignments after the previous statement.
</body>
                    <language>English</language>
                </specification>
                <name>blockAssignmentsBeforeStatements</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Block-blockAssignmentsBefore"
                xmi:uuid="bc4cca5e-ed5b-40ad-a3b6-7214365b4a94" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Block"/>
                <specification xmi:id="Alf-Block-blockAssignmentsBefore-specification"
                    xmi:uuid="3bc06a3c-19e9-4d5c-9106-dfa3c960653d" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the first statement of a block are the same as the assignments before the block.
</body>
                    <language>English</language>
                </specification>
                <name>blockAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Block-blockAssignmentAfterDerivation"
                xmi:uuid="a748615c-6614-4cfe-b940-59bc71a91fdf" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Block"/>
                <specification xmi:id="Alf-Block-blockAssignmentAfterDerivation-specification"
                    xmi:uuid="989d667a-3a3e-4582-99cc-c55b11b121e5" xmi:type="uml:OpaqueExpression">
                    <body>If a block is not empty, then the assignments after the block are the same as the assignments after the last statement of the block. Otherwise they are the same as the assignments before the block.
</body>
                    <language>English</language>
                </specification>
                <name>blockAssignmentAfterDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-Block-generalization"
                xmi:uuid="f8fac888-0ca3-4351-8e11-19d949adc80f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Block-statement"
                xmi:uuid="bc5cc92e-afa1-4dda-9ad6-dbcb875ce4c8" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Block-statement-ownedComment"
                    xmi:uuid="d75f1090-b8df-4448-96a0-3120815a99ef" xmi:type="uml:Comment">
                    <body>The ordered sequence of statements in the block.
</body>
                    <annotatedElement xmi:idref="Alf-Block-statement"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Block-statement-lowerValue"
                    xmi:uuid="810f4e95-33c1-412f-998a-8ce624a7c4bb" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Block-statement-upperValue"
                    xmi:uuid="0d38e83a-00a2-4b53-81d1-3600d7407a59"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>statement</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_statement_block"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Block-assignmentAfter"
                xmi:uuid="a08d8024-c73b-43f1-b9e5-cc0fc3b9baf9" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Block-assignmentAfter-ownedComment"
                    xmi:uuid="3dbe47de-203c-48c9-9896-fdc82b6e8155" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically after this block. This includes not only any assignments made within the block, but also any assignments that are unchanged from before the block.
</body>
                    <annotatedElement xmi:idref="Alf-Block-assignmentAfter"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Block-assignmentAfter-lowerValue"
                    xmi:uuid="d445aaa2-fe41-4f2b-9bd9-1cbabc9f7202" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Block-assignmentAfter-upperValue"
                    xmi:uuid="679f9c48-1d15-4d46-a89a-ffd15bcc6d21"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentAfter</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentAfter_block"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Block-assignmentBefore"
                xmi:uuid="29236dc5-a55b-4930-947f-8d6fbde850f1" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Block-assignmentBefore-ownedComment"
                    xmi:uuid="c260dff8-b19a-42d5-858e-6077a4249400" xmi:type="uml:Comment">
                    <body>The assigned sources for local names available lexically before this block.
</body>
                    <annotatedElement xmi:idref="Alf-Block-assignmentBefore"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Block-assignmentBefore-lowerValue"
                    xmi:uuid="a13a71e1-b387-47f6-9ae6-d5152f69ebde" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Block-assignmentBefore-upperValue"
                    xmi:uuid="b74187aa-063d-48de-8489-636d5b0d10b2"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>assignmentBefore</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-AssignedSource"/>
                <association xmi:idref="Alf-A_assignmentBefore_block"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-Block-hasReturnValue"
                xmi:uuid="f22f2dbb-c0ee-4924-80bb-12c3d2fd50b7" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Block-hasReturnValue-ownedComment"
                    xmi:uuid="8f1db9e6-4f2f-4712-8e4f-cef5518fca2c" xmi:type="uml:Comment">
                    <body>A block has a return value if any of its statements has a return value.
</body>
                    <annotatedElement xmi:idref="Alf-Block-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Block-hasReturnValue-result"
                    xmi:uuid="65781abf-0d87-4b32-9c56-1a9fe0cd94b5" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>Block</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ExpressionStatement"
            xmi:uuid="3ca411af-5438-4b9a-a278-120aab8db01d" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ExpressionStatement-ownedComment"
                xmi:uuid="1f2ec5b3-dbb6-4502-8e89-903fb93ec193" xmi:type="uml:Comment">
                <body>A statement that evaluates an expression when executed.
</body>
                <annotatedElement xmi:idref="Alf-ExpressionStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsBefore"
                xmi:uuid="f2b66844-6fa2-434b-b2f3-3f0a3f08b857" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ExpressionStatement"/>
                <specification
                    xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsBefore-specification"
                    xmi:uuid="dc6944d3-9e39-4fa3-bdbf-04288f24a8fc" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of an expression statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>expressionStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsAfter"
                xmi:uuid="acc0c794-4d1b-41c8-b709-8131add4d86d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ExpressionStatement"/>
                <specification
                    xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsAfter-specification"
                    xmi:uuid="6f59e819-8168-4ed2-a104-2f0594c1d0a1" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after an expression statement are the same as the assignments after its expression.
</body>
                    <language>English</language>
                </specification>
                <name>expressionStatementAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-ExpressionStatement-generalization"
                xmi:uuid="3a16da55-ef73-4c6c-a6c4-bffdec41a851" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ExpressionStatement-expression"
                xmi:uuid="d3cbbdc8-70de-46d4-b367-6f7cf30f7047" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ExpressionStatement-expression-ownedComment"
                    xmi:uuid="02e52248-d15d-4fd5-b5fd-d0336702ef3b" xmi:type="uml:Comment">
                    <body>The expression to be evaluated.
</body>
                    <annotatedElement xmi:idref="Alf-ExpressionStatement-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_expressionStatement"/>
            </ownedAttribute>
            <name>ExpressionStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ReturnStatement"
            xmi:uuid="d605d1d2-77a6-42e1-b556-2091f6079238" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ReturnStatement-ownedComment"
                xmi:uuid="40aae01c-b72d-4ce9-acf4-767788564cde" xmi:type="uml:Comment">
                <body>A statement that provides a value for the return parameter of an activity.
</body>
                <annotatedElement xmi:idref="Alf-ReturnStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ReturnStatement-returnStatementContext"
                xmi:uuid="016ca001-f378-4ebb-ab03-4e8a3bd208de" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReturnStatement"/>
                <specification xmi:id="Alf-ReturnStatement-returnStatementContext-specification"
                    xmi:uuid="3d88aab5-6cee-4752-baee-f35dd931a1cd" xmi:type="uml:OpaqueExpression">
                    <body>If the behavior containing the return statement has a return parameter, then the return statement must have an expression, and the expression must be assignable to that return parameter.
</body>
                    <language>English</language>
                </specification>
                <name>returnStatementContext</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ReturnStatement-returnStatementAssignmentsBefore"
                xmi:uuid="4d78af3a-f87d-4586-8b41-17900a231971" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReturnStatement"/>
                <specification
                    xmi:id="Alf-ReturnStatement-returnStatementAssignmentsBefore-specification"
                    xmi:uuid="363a2c0c-85ae-40dd-80e5-0c17f65b68c0" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the expression of a return statement are the same as the assignments before the statement.
</body>
                    <language>English</language>
                </specification>
                <name>returnStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ReturnStatement-returnStatementAssignmentsAfter"
                xmi:uuid="f129d296-238c-4a30-bd1d-01f0fbeb8c59" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReturnStatement"/>
                <specification
                    xmi:id="Alf-ReturnStatement-returnStatementAssignmentsAfter-specification"
                    xmi:uuid="7b181f1d-be2d-4ab0-ac08-0fafe8b94c53" xmi:type="uml:OpaqueExpression">
                    <body>The assignments after a return statement are the same as the assignments after the expression of the return statement.
</body>
                    <language>English</language>
                </specification>
                <name>returnStatementAssignmentsAfter</name>
            </ownedRule>
            <generalization xmi:id="Alf-ReturnStatement-generalization"
                xmi:uuid="214e8785-603f-4998-9a5b-694fc37db40a" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ReturnStatement-expression"
                xmi:uuid="67b42f10-c8af-4aa6-bb07-3507e3043674" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ReturnStatement-expression-ownedComment"
                    xmi:uuid="720f457d-2b92-491e-8c2e-539565c62337" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to provide the returned value.
</body>
                    <annotatedElement xmi:idref="Alf-ReturnStatement-expression"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ReturnStatement-expression-lowerValue"
                    xmi:uuid="c1016979-f8a3-4fcf-8078-ff0fe928a957" xmi:type="uml:LiteralInteger"/>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_returnStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ReturnStatement-behavior"
                xmi:uuid="838743c4-7fe3-4bda-8624-2cce1bd3e587" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ReturnStatement-behavior-ownedComment"
                    xmi:uuid="db939d64-3746-4865-b846-29867f0a7c58" xmi:type="uml:Comment">
                    <body>A reference to the enclosing behavior for this return statement.
</body>
                    <annotatedElement xmi:idref="Alf-ReturnStatement-behavior"/>
                </ownedComment>
                <name>behavior</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_behavior_returnStatement"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ReturnStatement-hasReturnValue"
                xmi:uuid="8023ce78-559d-42ed-bb1f-f52438bc1cfb" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-ReturnStatement-hasReturnValue-ownedComment"
                    xmi:uuid="d8275463-e530-4488-88dd-eedd795d1247" xmi:type="uml:Comment">
                    <body>A return statement is considered to have a return value.
</body>
                    <annotatedElement xmi:idref="Alf-ReturnStatement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ReturnStatement-hasReturnValue-result"
                    xmi:uuid="6b329673-d259-46c0-900b-eafa4edb8f76" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ReturnStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SwitchStatement"
            xmi:uuid="41d60257-e664-45ff-82e5-44fb488d1f95" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SwitchStatement-ownedComment"
                xmi:uuid="27b48f39-9b2b-4bcd-83e3-327630c8a760" xmi:type="uml:Comment">
                <body>A statement that executes (at most) one of a set of statement sequences based on matching a switch value to a set of test cases.
</body>
                <annotatedElement xmi:idref="Alf-SwitchStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignmentsBefore"
                xmi:uuid="6e956493-a79d-4354-992e-96a20e068b5a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementAssignmentsBefore-specification"
                    xmi:uuid="d019e530-4915-4b06-8290-c4a64eb73fdb" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the case expressions of all clauses of a switch statement are the same as the assignments after the expression of the switch statement.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementCaseAssignments"
                xmi:uuid="e97a1f77-744e-4d47-8c16-1cf550d12093" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementCaseAssignments-specification"
                    xmi:uuid="08ee30bd-b080-486d-944a-c03013b43de7" xmi:type="uml:OpaqueExpression">
                    <body>The same local name may not be assigned in more than one case expression in a switch statement.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementCaseAssignments</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignmentsAfter"
                xmi:uuid="57bd3ad4-8ac7-4322-8432-7c6c366963be" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementAssignmentsAfter-specification"
                    xmi:uuid="52ce1c74-b548-4039-8009-dbedc998ac08" xmi:type="uml:OpaqueExpression">
                    <body>If a name has an assigned source after any clause of a switch statement that is different than before that clause (including newly defined names), the assigned source after the switch statement is the switch statement, with a multiplicity lower bound that is the minimum of the lower bound for the name in each clause and a multiplicity upper bound that is the maximum for the name in each clause (where the name is considered to have multiplicity [0..0] for clauses in which it is not defined and unchanged multiplicity for an implicit default clause, unless the switch statement is assured). Otherwise, the assigned source of a name after the switch statement is the same as before the switch statement.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignments"
                xmi:uuid="eda95f1b-7bd1-431f-8a15-a6f2d0d98d56" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification xmi:id="Alf-SwitchStatement-switchStatementAssignments-specification"
                    xmi:uuid="24c3d37b-355f-48a4-b8b4-19296981682f" xmi:type="uml:OpaqueExpression">
                    <body>Any name that is unassigned before a switch statement and is assigned in one or more clauses of the switch statement, has, after the switch statement, a type that is is the effective common ancestor of the types of the name in each clause in which it is defined.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementAssignments</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementExpression"
                xmi:uuid="b3e793ab-1c0d-406f-980a-947660c6e6d4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification xmi:id="Alf-SwitchStatement-switchStatementExpression-specification"
                    xmi:uuid="3947ac7a-1ece-4af8-8791-6bade86704dd" xmi:type="uml:OpaqueExpression">
                    <body>A switch statement expression must have a multiplicity no greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementExpression</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementEnclosedStatements"
                xmi:uuid="69fbfb9e-8e85-4258-97de-38bdf6ff30d4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementEnclosedStatements-specification"
                    xmi:uuid="ce4539c1-3516-4ba6-96e7-178695acc6dd" xmi:type="uml:OpaqueExpression">
                    <body>A switch statement is the enclosing statement for the statements in all of its switch clauses.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementEnclosedStatements</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementIsDeterminateDerivation"
                xmi:uuid="4b41a486-f5c8-41ee-af29-42594f21c2fc" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementIsDeterminateDerivation-specification"
                    xmi:uuid="18609c39-8f4d-4eec-8afd-a62f4bb1889f" xmi:type="uml:OpaqueExpression">
                    <body>A switch statement is determinate if it has a @determinate annotation.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementIsDeterminateDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-SwitchStatement-switchStatementIsAssuredDerivation"
                xmi:uuid="d68d2949-f0d8-463b-8d0d-2658e74d02d7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SwitchStatement"/>
                <specification
                    xmi:id="Alf-SwitchStatement-switchStatementIsAssuredDerivation-specification"
                    xmi:uuid="63aadb70-a6be-4371-82dd-463bac2be920" xmi:type="uml:OpaqueExpression">
                    <body>A switch statement is assured if it has an @assured annotation.
</body>
                    <language>English</language>
                </specification>
                <name>switchStatementIsAssuredDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-SwitchStatement-generalization"
                xmi:uuid="ef043a63-2867-4410-9c0e-bfeb1a5916be" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-SwitchStatement-nonDefaultClause"
                xmi:uuid="b1bdfb95-15e4-40c8-bde1-b42caa5013d5" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SwitchStatement-nonDefaultClause-ownedComment"
                    xmi:uuid="3024bb30-8e15-4676-b60e-b225e548001c" xmi:type="uml:Comment">
                    <body>The set of switch clauses whose cases are to be tested against the switch value.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-nonDefaultClause"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SwitchStatement-nonDefaultClause-lowerValue"
                    xmi:uuid="125a4645-468a-41f1-9713-e57aa23cfbfa" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-SwitchStatement-nonDefaultClause-upperValue"
                    xmi:uuid="cc0de2ac-a710-4b5f-9536-c7a06f1a5b89"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>nonDefaultClause</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-SwitchClause"/>
                <association xmi:idref="Alf-A_nonDefaultClause_switchStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SwitchStatement-expression"
                xmi:uuid="e5fb5a3c-938c-45c2-9e24-12c4361bb8eb" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SwitchStatement-expression-ownedComment"
                    xmi:uuid="d201fb2e-a01c-4064-b8c8-37cc6cd4290d" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to provide the switch value.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-expression"/>
                </ownedComment>
                <name>expression</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_expression_switchStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SwitchStatement-defaultClause"
                xmi:uuid="59f54193-1cbc-4939-9991-b8e3d2a5c623" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-SwitchStatement-defaultClause-ownedComment"
                    xmi:uuid="afc319a5-93cc-4358-bb44-7005d64f17cc" xmi:type="uml:Comment">
                    <body>A sequence of statements to be executed if no switch clause case matches the switch value.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-defaultClause"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-SwitchStatement-defaultClause-lowerValue"
                    xmi:uuid="e813bda0-afcd-4747-b8bc-cd3a9e3dff6c" xmi:type="uml:LiteralInteger"/>
                <name>defaultClause</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_defaultClause_switchStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SwitchStatement-isAssured"
                xmi:uuid="0c3b1f7f-9ed7-4333-815d-7cd13a484d24" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-SwitchStatement-isAssured-ownedComment"
                    xmi:uuid="342f7a8c-7dff-4a1b-a3c0-bdf9cb39fadc" xmi:type="uml:Comment">
                    <body>Whether at least one case in the switch statement is assured to match.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-isAssured"/>
                </ownedComment>
                <name>isAssured</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-SwitchStatement-isDeterminate"
                xmi:uuid="bec6c26e-9f15-4958-a4b2-cb0376d28711" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-SwitchStatement-isDeterminate-ownedComment"
                    xmi:uuid="310e4257-edf9-41fe-b476-751c2275832b" xmi:type="uml:Comment">
                    <body>Whether at most one case in the if statement will ever to match.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-isDeterminate"/>
                </ownedComment>
                <name>isDeterminate</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-SwitchStatement-annotationAllowed"
                xmi:uuid="72106bf3-93fb-49fc-9d7e-48140feb9a68" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
                <ownedComment xmi:id="Alf-SwitchStatement-annotationAllowed-ownedComment"
                    xmi:uuid="0b0ca119-6430-45e7-94a1-bf27febe08c3" xmi:type="uml:Comment">
                    <body>In addition to an @isolated annotation, a switch statement may have @assured and @determinate annotations. They may not have arguments.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SwitchStatement-annotationAllowed-annotation"
                    xmi:uuid="9adcac50-37f6-42d3-9655-e65dc760eaa4" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Annotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SwitchStatement-annotationAllowed-result"
                    xmi:uuid="22870080-c76d-434d-b59c-4b03ab7797c6" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SwitchStatement-hasReturnValue"
                xmi:uuid="066979be-1bbe-41ed-abb3-51c2648a5cab" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-SwitchStatement-hasReturnValue-ownedComment"
                    xmi:uuid="b32d0264-90f8-4cd8-b779-61e62f35eb64" xmi:type="uml:Comment">
                    <body>A switch statement has a return value if the blocks of all its clauses have return values, and it either has a default clause or is assured.
</body>
                    <annotatedElement xmi:idref="Alf-SwitchStatement-hasReturnValue"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SwitchStatement-hasReturnValue-result"
                    xmi:uuid="f5170ae6-f435-43aa-bb9f-1288f9933608" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>hasReturnValue</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SwitchStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-QualifiedNameList"
            xmi:uuid="78e29f4c-57c1-448e-b342-1d50443e7cd0" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-QualifiedNameList-ownedComment"
                xmi:uuid="c2e0e279-03d0-40ed-b6f3-caa18552f621" xmi:type="uml:Comment">
                <body>A group of qualified names.
</body>
                <annotatedElement xmi:idref="Alf-QualifiedNameList"/>
            </ownedComment>
            <generalization xmi:id="Alf-QualifiedNameList-generalization"
                xmi:uuid="626fde14-4481-4d2f-a095-4efda1b4e39f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-QualifiedNameList-name"
                xmi:uuid="f74bc2a8-7fe5-4c21-b502-0f22897e844a" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-QualifiedNameList-name-ownedComment"
                    xmi:uuid="f895642c-330f-451b-8733-c2f61d78b52f" xmi:type="uml:Comment">
                    <body>The names in the group.
</body>
                    <annotatedElement xmi:idref="Alf-QualifiedNameList-name"/>
                </ownedComment>
                <upperValue xmi:id="Alf-QualifiedNameList-name-upperValue"
                    xmi:uuid="88adb131-f336-441c-ad65-52ed0d5a2371"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>name</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_name_qualifiedNameList"/>
            </ownedAttribute>
            <name>QualifiedNameList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-WhileStatement" xmi:uuid="c79d974e-0226-4b6f-b853-3630893ace9f"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-WhileStatement-ownedComment"
                xmi:uuid="32a04971-393f-42ac-b2cf-fd81fe50e6a0" xmi:type="uml:Comment">
                <body>A looping statement for which the continuation condition is first tested before the first iteration.
</body>
                <annotatedElement xmi:idref="Alf-WhileStatement"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-WhileStatement-whileStatementAssignmentsBefore"
                xmi:uuid="bc780022-1006-416f-90b7-b3460dac0505" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-WhileStatement"/>
                <specification
                    xmi:id="Alf-WhileStatement-whileStatementAssignmentsBefore-specification"
                    xmi:uuid="96564df9-7862-430b-9543-307f3d7f795f" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the condition expression of a while statement are the same as the assignments before the while statement, except that any local names with a multiplicity lower bound of 0 after the block are adjusted to also have a multiplicity lower bound of 0 before the condition expression. The assignments before the block of the while statement are the same as the assignments after the condition expression, adjusted for known null and non-null names and type classifications due to the condition expression being true.
</body>
                    <language>English</language>
                </specification>
                <name>whileStatementAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-WhileStatement-whileStatementAssignmentsAfter"
                xmi:uuid="46a34e11-cf15-421a-afd7-62435de2aa6f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-WhileStatement"/>
                <specification
                    xmi:id="Alf-WhileStatement-whileStatementAssignmentsAfter-specification"
                    xmi:uuid="7190af71-e337-481a-9cdb-b56cd1c4c25e" xmi:type="uml:OpaqueExpression">
                    <body>If the assigned source for a name after the block of a while statement is different than before the while statement, then the assigned source of the name after the while statement is the while statement. Otherwise it is the same as before the while statement.  If a name is unassigned before the block of a while statement and assigned after the block, then it has multiplicity lower bound of 0 after the while statement. Otherwise, the assignments after the while statement are adjusted for known null and non-null names and type classifications due to the condition expression being false.
</body>
                    <language>English</language>
                </specification>
                <name>whileStatementAssignmentsAfter</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-WhileStatement-whileStatementCondition"
                xmi:uuid="f38aa25e-b8de-4af7-89cd-7163e2bf558b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-WhileStatement"/>
                <specification xmi:id="Alf-WhileStatement-whileStatementCondition-specification"
                    xmi:uuid="fbe2a3de-0167-405d-964a-776c9192f8b7" xmi:type="uml:OpaqueExpression">
                    <body>The condition expression of a while statement must have a type that conforms to type Boolean and multiplicity [1..1].
</body>
                    <language>English</language>
                </specification>
                <name>whileStatementCondition</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-WhileStatement-whileStatementEnclosedStatements"
                xmi:uuid="6ffc01f9-5389-4535-be9c-9fc5ec7d9070" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-WhileStatement"/>
                <specification
                    xmi:id="Alf-WhileStatement-whileStatementEnclosedStatements-specification"
                    xmi:uuid="ef3704af-3394-436d-8aba-a3423bc4b9d1" xmi:type="uml:OpaqueExpression">
                    <body>The enclosing statement for all statements in the body of a while statement are the while statement.
</body>
                    <language>English</language>
                </specification>
                <name>whileStatementEnclosedStatements</name>
            </ownedRule>
            <generalization xmi:id="Alf-WhileStatement-generalization"
                xmi:uuid="6d5fc712-0723-4ca9-8738-7a9ddf17ac22" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Statement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-WhileStatement-body"
                xmi:uuid="2b7e4749-701a-4cac-8ec0-7ce9283d91ed" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-WhileStatement-body-ownedComment"
                    xmi:uuid="3a511bdb-dfca-4eef-a3b0-c561dba0951e" xmi:type="uml:Comment">
                    <body>The sequence of statements to be iteratively executed.
</body>
                    <annotatedElement xmi:idref="Alf-WhileStatement-body"/>
                </ownedComment>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_whileStatement"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-WhileStatement-condition"
                xmi:uuid="abe3ff61-4879-44ff-8942-68ece893b228" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-WhileStatement-condition-ownedComment"
                    xmi:uuid="25b9c8a4-bff3-4739-bed2-b909f4891e3c" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to determine whether to continue looping.
</body>
                    <annotatedElement xmi:idref="Alf-WhileStatement-condition"/>
                </ownedComment>
                <name>condition</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_condition_whileStatement"/>
            </ownedAttribute>
            <name>WhileStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_doStatement"
            xmi:uuid="2af09dfd-816b-4377-b97e-3d628c504852" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-DoStatement-body"/>
            <memberEnd xmi:idref="Alf-A_body_doStatement-doStatement"/>
            <ownedEnd xmi:id="Alf-A_body_doStatement-doStatement"
                xmi:uuid="4b09fdf8-b80e-4929-8e0e-5d0e3f6bf7a9" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_doStatement-doStatement-lowerValue"
                    xmi:uuid="3b957680-787d-4662-8cbf-1ff75c08cd9b" xmi:type="uml:LiteralInteger"/>
                <name>doStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-DoStatement"/>
                <association xmi:idref="Alf-A_body_doStatement"/>
            </ownedEnd>
            <name>A_body_doStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_returnStatement"
            xmi:uuid="bc290d90-86e9-4e5b-aaf2-257cec4a4a1a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ReturnStatement-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_returnStatement-returnStatement"/>
            <ownedEnd xmi:id="Alf-A_expression_returnStatement-returnStatement"
                xmi:uuid="b90852d8-a787-4e09-add0-bb2d265dafd4" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_returnStatement-returnStatement-lowerValue"
                    xmi:uuid="69d74c32-38ff-45b2-b00b-85263bea6471" xmi:type="uml:LiteralInteger"/>
                <name>returnStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ReturnStatement"/>
                <association xmi:idref="Alf-A_expression_returnStatement"/>
            </ownedEnd>
            <name>A_expression_returnStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_enclosingStatement_statement"
            xmi:uuid="32f2abfe-7c15-486f-93af-448190b3307b" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Statement-enclosingStatement"/>
            <memberEnd xmi:idref="Alf-A_enclosingStatement_statement-statement"/>
            <ownedEnd xmi:id="Alf-A_enclosingStatement_statement-statement"
                xmi:uuid="56f08709-1e86-4ffd-ad60-a8b7d73c37ef" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_enclosingStatement_statement-statement-lowerValue"
                    xmi:uuid="404f033d-c08f-42d9-95ba-3aefb1f7425d" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_enclosingStatement_statement-statement-upperValue"
                    xmi:uuid="aeae5dfa-f702-4f04-82dd-d66c20f8a786"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>statement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_enclosingStatement_statement"/>
            </ownedEnd>
            <name>A_enclosingStatement_statement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_type_loopVariableDefinition"
            xmi:uuid="273d92da-8388-46f9-bf59-2ead09a61dc8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-type"/>
            <memberEnd xmi:idref="Alf-A_type_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_type_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="733dd86c-3ccb-4768-8aac-5f00ed3e9638" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_type_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="3fe51f94-0666-4d48-b812-eb67ac9beabe" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_type_loopVariableDefinition-loopVariableDefinition-upperValue"
                    xmi:uuid="940b4f33-76a4-4b52-b99e-e95a970e518a"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_type_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_type_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_concurrentClauses"
            xmi:uuid="d86d5698-2e11-4612-bc36-b583b564eba1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ConcurrentClauses-assignmentBefore"/>
            <memberEnd xmi:idref="Alf-A_assignmentBefore_concurrentClauses-concurrentClauses"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_concurrentClauses-concurrentClauses"
                xmi:uuid="25482cbe-2c7c-4dcd-bef9-83a787895f41" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_assignmentBefore_concurrentClauses-concurrentClauses-lowerValue"
                    xmi:uuid="7f0d5cd8-6eb0-4c07-9e0d-15c65f7cc550" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_assignmentBefore_concurrentClauses-concurrentClauses-upperValue"
                    xmi:uuid="aac9cb0c-4bdc-4b59-85be-f76c5fd15133"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>concurrentClauses</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ConcurrentClauses"/>
                <association xmi:idref="Alf-A_assignmentBefore_concurrentClauses"/>
            </ownedEnd>
            <name>A_assignmentBefore_concurrentClauses</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_name_qualifiedNameList"
            xmi:uuid="f1fb768a-f3ef-46ca-a49e-670ced7a901a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-QualifiedNameList-name"/>
            <memberEnd xmi:idref="Alf-A_name_qualifiedNameList-qualifiedNameList"/>
            <ownedEnd xmi:id="Alf-A_name_qualifiedNameList-qualifiedNameList"
                xmi:uuid="992517cf-b28c-49e8-95bc-d8fd3a7d6b1d" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_name_qualifiedNameList-qualifiedNameList-lowerValue"
                    xmi:uuid="51f0e4ce-dd48-4b04-bf29-6686c4f60214" xmi:type="uml:LiteralInteger"/>
                <name>qualifiedNameList</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_name_qualifiedNameList"/>
            </ownedEnd>
            <name>A_name_qualifiedNameList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_nonFinalClauses_ifStatement"
            xmi:uuid="d15a430b-1007-4fea-9745-509a4c1f267e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IfStatement-nonFinalClauses"/>
            <memberEnd xmi:idref="Alf-A_nonFinalClauses_ifStatement-ifStatement"/>
            <ownedEnd xmi:id="Alf-A_nonFinalClauses_ifStatement-ifStatement"
                xmi:uuid="3d15f837-53f3-4784-b71a-2c996863ab72" xmi:type="uml:Property">
                <name>ifStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IfStatement"/>
                <association xmi:idref="Alf-A_nonFinalClauses_ifStatement"/>
            </ownedEnd>
            <name>A_nonFinalClauses_ifStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentAfter_block"
            xmi:uuid="84dc11f7-a772-4994-a625-9409d3b213ad" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Block-assignmentAfter"/>
            <memberEnd xmi:idref="Alf-A_assignmentAfter_block-block"/>
            <ownedEnd xmi:id="Alf-A_assignmentAfter_block-block"
                xmi:uuid="9dd212a8-dd5a-45ae-804e-6f66b07a94f4" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentAfter_block-block-lowerValue"
                    xmi:uuid="03829097-1ca6-4134-9387-62b3f8d097b5" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentAfter_block-block-upperValue"
                    xmi:uuid="d6d01ca0-5775-4f31-b5f2-dbe019402076"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>block</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_assignmentAfter_block"/>
            </ownedEnd>
            <name>A_assignmentAfter_block</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_condition_doStatement"
            xmi:uuid="3ab0bbec-952c-4859-8a9c-91629c56b2c9" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-DoStatement-condition"/>
            <memberEnd xmi:idref="Alf-A_condition_doStatement-doStatement"/>
            <ownedEnd xmi:id="Alf-A_condition_doStatement-doStatement"
                xmi:uuid="bc73bce7-ef18-49b7-ac9e-83fe10433666" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_condition_doStatement-doStatement-lowerValue"
                    xmi:uuid="086289a6-1b4e-4cf5-9fd7-7502d5ce6b1b" xmi:type="uml:LiteralInteger"/>
                <name>doStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-DoStatement"/>
                <association xmi:idref="Alf-A_condition_doStatement"/>
            </ownedEnd>
            <name>A_condition_doStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_case_switchClause"
            xmi:uuid="5591f1bb-2dee-471c-950f-1c938cd0da90" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SwitchClause-case"/>
            <memberEnd xmi:idref="Alf-A_case_switchClause-switchClause"/>
            <ownedEnd xmi:id="Alf-A_case_switchClause-switchClause"
                xmi:uuid="c45ed04b-4d78-4729-9bde-8c9100e5205d" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_case_switchClause-switchClause-lowerValue"
                    xmi:uuid="013fceff-ac3b-4c40-9985-2902a9a7c2d6" xmi:type="uml:LiteralInteger"/>
                <name>switchClause</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SwitchClause"/>
                <association xmi:idref="Alf-A_case_switchClause"/>
            </ownedEnd>
            <name>A_case_switchClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_target_breakStatement"
            xmi:uuid="4244f580-c679-4d59-be24-3c48f428de38" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-BreakStatement-target"/>
            <memberEnd xmi:idref="Alf-A_target_breakStatement-breakStatement"/>
            <ownedEnd xmi:id="Alf-A_target_breakStatement-breakStatement"
                xmi:uuid="91d2abb9-300b-46df-bc26-ff44f92f1523" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_target_breakStatement-breakStatement-lowerValue"
                    xmi:uuid="eac95a67-b684-49fc-aa20-8c3d3a9fba53" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_target_breakStatement-breakStatement-upperValue"
                    xmi:uuid="70b78a64-aa0e-4064-a73e-6640f1fc4c1a"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>breakStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-BreakStatement"/>
                <association xmi:idref="Alf-A_target_breakStatement"/>
            </ownedEnd>
            <name>A_target_breakStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_classifyStatement"
            xmi:uuid="1a975197-95a4-4d56-ba11-9b4699e15219" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifyStatement-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_classifyStatement-classifyStatement"/>
            <ownedEnd xmi:id="Alf-A_expression_classifyStatement-classifyStatement"
                xmi:uuid="54a23ca4-214c-4ae1-9b49-bc6dbed278ae" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_classifyStatement-classifyStatement-lowerValue"
                    xmi:uuid="451d9cab-af31-4c18-9cbe-b264a672924d" xmi:type="uml:LiteralInteger"/>
                <name>classifyStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifyStatement"/>
                <association xmi:idref="Alf-A_expression_classifyStatement"/>
            </ownedEnd>
            <name>A_expression_classifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_loopVariableDefinition"
            xmi:uuid="eb5c67d4-5a13-4fef-b76f-b187e024d7dd" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-assignmentBefore"/>
            <memberEnd
                xmi:idref="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="b6c497c0-39f7-451f-a222-c7492dc1a0c3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="f9606412-0d76-4e27-8afe-25ddd35deccc" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition-upperValue"
                    xmi:uuid="4f9fd204-655a-465c-a6ab-2225d2c19b28"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_assignmentBefore_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_assignmentBefore_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression2_loopVariableDefinition"
            xmi:uuid="7a56a19b-8d09-4384-9af0-407e0a8b211f" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-expression2"/>
            <memberEnd xmi:idref="Alf-A_expression2_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_expression2_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="ad18dfd1-7fb7-4a84-b9f3-f2388551c56f" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression2_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="4b4c2a18-5bd9-45e0-9e80-f5b19f4e52ae" xmi:type="uml:LiteralInteger"/>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_expression2_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_expression2_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_nonFinalClause"
            xmi:uuid="83fcd8c3-3fcd-44a8-83e5-0a90051fff5e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NonFinalClause-body"/>
            <memberEnd xmi:idref="Alf-A_body_nonFinalClause-nonFinalClause"/>
            <ownedEnd xmi:id="Alf-A_body_nonFinalClause-nonFinalClause"
                xmi:uuid="c5a2793d-24b3-4e2a-9de7-26d163f90eeb" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_nonFinalClause-nonFinalClause-lowerValue"
                    xmi:uuid="a4749227-f34f-4c43-9b77-92f94a343b9e" xmi:type="uml:LiteralInteger"/>
                <name>nonFinalClause</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NonFinalClause"/>
                <association xmi:idref="Alf-A_body_nonFinalClause"/>
            </ownedEnd>
            <name>A_body_nonFinalClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_signal_acceptBlock"
            xmi:uuid="355ed2be-9ecd-42db-beda-282f9ae15a19" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AcceptBlock-signal"/>
            <memberEnd xmi:idref="Alf-A_signal_acceptBlock-acceptBlock"/>
            <ownedEnd xmi:id="Alf-A_signal_acceptBlock-acceptBlock"
                xmi:uuid="0fd47ae3-0cce-40f5-bab9-c5aaff31eab7" xmi:type="uml:Property">
                <name>acceptBlock</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AcceptBlock"/>
                <association xmi:idref="Alf-A_signal_acceptBlock"/>
            </ownedEnd>
            <name>A_signal_acceptBlock</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_block_acceptBlock"
            xmi:uuid="efc09b6c-0eb0-4202-b3f3-ada9d06c11b4" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AcceptBlock-block"/>
            <memberEnd xmi:idref="Alf-A_block_acceptBlock-acceptBlock"/>
            <ownedEnd xmi:id="Alf-A_block_acceptBlock-acceptBlock"
                xmi:uuid="dc214af8-73a9-4d12-aec3-6155bc678e01" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_block_acceptBlock-acceptBlock-lowerValue"
                    xmi:uuid="38e493c7-88da-4942-a926-bd5a535a573e" xmi:type="uml:LiteralInteger"/>
                <name>acceptBlock</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AcceptBlock"/>
                <association xmi:idref="Alf-A_block_acceptBlock"/>
            </ownedEnd>
            <name>A_block_acceptBlock</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_statement_block"
            xmi:uuid="5f6609f4-b88b-40d8-96ef-cae485316c29" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Block-statement"/>
            <memberEnd xmi:idref="Alf-A_statement_block-block"/>
            <ownedEnd xmi:id="Alf-A_statement_block-block"
                xmi:uuid="ab78178c-e22f-4783-a76f-226ed35f2429" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_statement_block-block-lowerValue"
                    xmi:uuid="8e604a6a-1809-46f1-b11f-9f3ad24f7f12" xmi:type="uml:LiteralInteger"/>
                <name>block</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_statement_block"/>
            </ownedEnd>
            <name>A_statement_block</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_fromList_classifyStatement"
            xmi:uuid="8381dfcf-fcbb-4dc5-b5e5-5943ba7ffaf2" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifyStatement-fromList"/>
            <memberEnd xmi:idref="Alf-A_fromList_classifyStatement-classifyStatement"/>
            <ownedEnd xmi:id="Alf-A_fromList_classifyStatement-classifyStatement"
                xmi:uuid="435fdb8a-e368-4e5a-8d36-94f9529476b4" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_fromList_classifyStatement-classifyStatement-lowerValue"
                    xmi:uuid="d9006986-6ef4-4260-b8a7-0fb3dc3dbb86" xmi:type="uml:LiteralInteger"/>
                <name>classifyStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifyStatement"/>
                <association xmi:idref="Alf-A_fromList_classifyStatement"/>
            </ownedEnd>
            <name>A_fromList_classifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_signalNames_acceptBlock"
            xmi:uuid="27136527-2dd8-46b6-91ec-0451ec30cb76" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AcceptBlock-signalNames"/>
            <memberEnd xmi:idref="Alf-A_signalNames_acceptBlock-acceptBlock"/>
            <ownedEnd xmi:id="Alf-A_signalNames_acceptBlock-acceptBlock"
                xmi:uuid="8f524270-8ac3-444d-b5c8-42f9d9a3a745" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_signalNames_acceptBlock-acceptBlock-lowerValue"
                    xmi:uuid="df19a87d-dba4-450e-a08b-46f321a2015d" xmi:type="uml:LiteralInteger"/>
                <name>acceptBlock</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AcceptBlock"/>
                <association xmi:idref="Alf-A_signalNames_acceptBlock"/>
            </ownedEnd>
            <name>A_signalNames_acceptBlock</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_behavior_acceptStatement"
            xmi:uuid="7018e422-289b-4efa-96b7-020fc140d233" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AcceptStatement-behavior"/>
            <memberEnd xmi:idref="Alf-A_behavior_acceptStatement-acceptStatement"/>
            <ownedEnd xmi:id="Alf-A_behavior_acceptStatement-acceptStatement"
                xmi:uuid="6cc70477-315c-4c39-a582-8c9f2a008f87" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_behavior_acceptStatement-acceptStatement-lowerValue"
                    xmi:uuid="59ed004e-fb02-4fe5-8986-1832e9d60a14" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_behavior_acceptStatement-acceptStatement-upperValue"
                    xmi:uuid="5879e2d7-71a2-4e01-b2dc-8cc6e781447a"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>acceptStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AcceptStatement"/>
                <association xmi:idref="Alf-A_behavior_acceptStatement"/>
            </ownedEnd>
            <name>A_behavior_acceptStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_condition_nonFinalClause"
            xmi:uuid="3be4e7f3-4db9-4d2e-9c9e-2921319ff42d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NonFinalClause-condition"/>
            <memberEnd xmi:idref="Alf-A_condition_nonFinalClause-nonFinalClause"/>
            <ownedEnd xmi:id="Alf-A_condition_nonFinalClause-nonFinalClause"
                xmi:uuid="596ef181-223e-4951-9236-c7e01cb69c25" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_condition_nonFinalClause-nonFinalClause-lowerValue"
                    xmi:uuid="19618df8-fd6f-47d9-afcf-76b484a7eb30" xmi:type="uml:LiteralInteger"/>
                <name>nonFinalClause</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NonFinalClause"/>
                <association xmi:idref="Alf-A_condition_nonFinalClause"/>
            </ownedEnd>
            <name>A_condition_nonFinalClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_clause_concurrentClauses"
            xmi:uuid="986da0d1-8e9b-496b-9bb9-a07e0dc5650d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ConcurrentClauses-clause"/>
            <memberEnd xmi:idref="Alf-A_clause_concurrentClauses-concurrentClauses"/>
            <ownedEnd xmi:id="Alf-A_clause_concurrentClauses-concurrentClauses"
                xmi:uuid="7e8c618e-a003-4e73-886c-f4407c0feb44" xmi:type="uml:Property">
                <name>concurrentClauses</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ConcurrentClauses"/>
                <association xmi:idref="Alf-A_clause_concurrentClauses"/>
            </ownedEnd>
            <name>A_clause_concurrentClauses</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_block_blockStatement"
            xmi:uuid="6d5c5180-29ef-4027-9beb-90bfbaaa9b45" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-BlockStatement-block"/>
            <memberEnd xmi:idref="Alf-A_block_blockStatement-blockStatement"/>
            <ownedEnd xmi:id="Alf-A_block_blockStatement-blockStatement"
                xmi:uuid="47aa1fb6-7749-4678-8d9b-231eef07f20f" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_block_blockStatement-blockStatement-lowerValue"
                    xmi:uuid="70551da0-cf5b-4f21-a26a-7b054794c22c" xmi:type="uml:LiteralInteger"/>
                <name>blockStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-BlockStatement"/>
                <association xmi:idref="Alf-A_block_blockStatement"/>
            </ownedEnd>
            <name>A_block_blockStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_behavior_returnStatement"
            xmi:uuid="7f4e8606-5e5e-4399-8164-bd37cfe11b43" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ReturnStatement-behavior"/>
            <memberEnd xmi:idref="Alf-A_behavior_returnStatement-returnStatement"/>
            <ownedEnd xmi:id="Alf-A_behavior_returnStatement-returnStatement"
                xmi:uuid="2577c6a2-b783-4f35-a3da-5089bc28277e" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_behavior_returnStatement-returnStatement-lowerValue"
                    xmi:uuid="96bb1d27-180d-457b-89ac-dc5895fab389" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_behavior_returnStatement-returnStatement-upperValue"
                    xmi:uuid="91e2025b-2b25-46ad-ae97-db0a3f5f4abd"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>returnStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ReturnStatement"/>
                <association xmi:idref="Alf-A_behavior_returnStatement"/>
            </ownedEnd>
            <name>A_behavior_returnStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_statement"
            xmi:uuid="07f9b2b5-ec3a-48b3-b976-5f3f2a0d0179" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Statement-assignmentBefore"/>
            <memberEnd xmi:idref="Alf-A_assignmentBefore_statement-statement"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_statement-statement"
                xmi:uuid="58eeaabc-c863-4fa9-8b9a-92e8afe4101c" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentBefore_statement-statement-lowerValue"
                    xmi:uuid="05a4a89b-30e2-4fb4-b713-362bc125df56" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentBefore_statement-statement-upperValue"
                    xmi:uuid="0c454a32-7529-4846-8efd-ea89fce66901"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>statement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_assignmentBefore_statement"/>
            </ownedEnd>
            <name>A_assignmentBefore_statement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_block_switchClause"
            xmi:uuid="e13bc531-dbfa-49d7-a143-a51c9010babd" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SwitchClause-block"/>
            <memberEnd xmi:idref="Alf-A_block_switchClause-switchClause"/>
            <ownedEnd xmi:id="Alf-A_block_switchClause-switchClause"
                xmi:uuid="89409960-8ef3-480f-bdae-e7947fb9ec75" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_block_switchClause-switchClause-lowerValue"
                    xmi:uuid="74bc3a11-82e1-469b-adfa-b80f4e1a8201" xmi:type="uml:LiteralInteger"/>
                <name>switchClause</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SwitchClause"/>
                <association xmi:idref="Alf-A_block_switchClause"/>
            </ownedEnd>
            <name>A_block_switchClause</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_localNameDeclarationStatement"
            xmi:uuid="3dee1849-bd6d-4299-a54f-433801ff9f81" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LocalNameDeclarationStatement-expression"/>
            <memberEnd
                xmi:idref="Alf-A_expression_localNameDeclarationStatement-localNameDeclarationStatement"/>
            <ownedEnd
                xmi:id="Alf-A_expression_localNameDeclarationStatement-localNameDeclarationStatement"
                xmi:uuid="9ae05f41-0498-46fb-af00-02f34c4572b3" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression_localNameDeclarationStatement-localNameDeclarationStatement-lowerValue"
                    xmi:uuid="60e3d5e2-c8b8-401d-9c0f-f2fb739c609a" xmi:type="uml:LiteralInteger"/>
                <name>localNameDeclarationStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <association xmi:idref="Alf-A_expression_localNameDeclarationStatement"/>
            </ownedEnd>
            <name>A_expression_localNameDeclarationStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_expressionStatement"
            xmi:uuid="f6c960f9-aa54-402a-99d6-3179ad3b5a7d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ExpressionStatement-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_expressionStatement-expressionStatement"/>
            <ownedEnd xmi:id="Alf-A_expression_expressionStatement-expressionStatement"
                xmi:uuid="8e82bd09-0c4a-492e-8589-06ae85a1cc83" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression_expressionStatement-expressionStatement-lowerValue"
                    xmi:uuid="b88d8381-8a31-489b-85f5-21eab564eb37" xmi:type="uml:LiteralInteger"/>
                <name>expressionStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ExpressionStatement"/>
                <association xmi:idref="Alf-A_expression_expressionStatement"/>
            </ownedEnd>
            <name>A_expression_expressionStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentAfter_statement"
            xmi:uuid="d183750c-a7e1-4b74-8d5c-0bd1fa0ce287" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Statement-assignmentAfter"/>
            <memberEnd xmi:idref="Alf-A_assignmentAfter_statement-statement"/>
            <ownedEnd xmi:id="Alf-A_assignmentAfter_statement-statement"
                xmi:uuid="b69145df-6586-4527-a966-fd84601c9cc7" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentAfter_statement-statement-lowerValue"
                    xmi:uuid="5cce9774-825b-4d8d-8275-7bb6095915f4" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentAfter_statement-statement-upperValue"
                    xmi:uuid="e14862c3-e46e-466a-841c-329f138a9346"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>statement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_assignmentAfter_statement"/>
            </ownedEnd>
            <name>A_assignmentAfter_statement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentAfter_loopVariableDefinition"
            xmi:uuid="419dc613-db24-420e-a594-99ef6b9eda9e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-assignmentAfter"/>
            <memberEnd
                xmi:idref="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="cadff609-d02e-417f-8296-58fe9fdadc38" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="3ec5e3eb-8542-41b0-b756-4fcc6798cb7c" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition-upperValue"
                    xmi:uuid="936a9dfe-e41d-4347-be4a-335ada317693"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_assignmentAfter_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_assignmentAfter_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_acceptBlock_acceptStatement"
            xmi:uuid="6786c922-bb70-4e10-bf9e-0c3072251c97" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-AcceptStatement-acceptBlock"/>
            <memberEnd xmi:idref="Alf-A_acceptBlock_acceptStatement-acceptStatement"/>
            <ownedEnd xmi:id="Alf-A_acceptBlock_acceptStatement-acceptStatement"
                xmi:uuid="9d903caa-f62a-47e0-b5cc-327e1d4054fc" xmi:type="uml:Property">
                <name>acceptStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-AcceptStatement"/>
                <association xmi:idref="Alf-A_acceptBlock_acceptStatement"/>
            </ownedEnd>
            <name>A_acceptBlock_acceptStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_loopVariableDefinition"
            xmi:uuid="2c53239e-d8b1-4baa-abf3-2dc994bfe5c6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-typeName"/>
            <memberEnd xmi:idref="Alf-A_typeName_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_typeName_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="c3735f50-401a-4938-8e08-67de24581b93" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_typeName_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="8bdd97ae-465d-4a76-a84d-5ab23f373cce" xmi:type="uml:LiteralInteger"/>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_typeName_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_typeName_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_finalClause_ifStatement"
            xmi:uuid="144a6d41-60b2-43fb-afa1-4a7ee914c35c" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-IfStatement-finalClause"/>
            <memberEnd xmi:idref="Alf-A_finalClause_ifStatement-ifStatement"/>
            <ownedEnd xmi:id="Alf-A_finalClause_ifStatement-ifStatement"
                xmi:uuid="5adad4d5-4a1a-41df-ae37-3e420c74ba41" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_finalClause_ifStatement-ifStatement-lowerValue"
                    xmi:uuid="1022f935-8833-4e92-bd34-fe4604684afb" xmi:type="uml:LiteralInteger"/>
                <name>ifStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-IfStatement"/>
                <association xmi:idref="Alf-A_finalClause_ifStatement"/>
            </ownedEnd>
            <name>A_finalClause_ifStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_condition_whileStatement"
            xmi:uuid="da3d8f2b-9e9d-4aa4-93cf-2edb185a29d8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-WhileStatement-condition"/>
            <memberEnd xmi:idref="Alf-A_condition_whileStatement-whileStatement"/>
            <ownedEnd xmi:id="Alf-A_condition_whileStatement-whileStatement"
                xmi:uuid="f255aea8-ee3e-4228-a181-7926fbc3884a" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_condition_whileStatement-whileStatement-lowerValue"
                    xmi:uuid="ce57d1c0-1dc2-44f2-b2cb-d22613c96c4f" xmi:type="uml:LiteralInteger"/>
                <name>whileStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-WhileStatement"/>
                <association xmi:idref="Alf-A_condition_whileStatement"/>
            </ownedEnd>
            <name>A_condition_whileStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_fromClass_classifyStatement"
            xmi:uuid="1e3eea35-ee1f-46e1-af91-d2e67a247f58" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifyStatement-fromClass"/>
            <memberEnd xmi:idref="Alf-A_fromClass_classifyStatement-classifyStatement"/>
            <ownedEnd xmi:id="Alf-A_fromClass_classifyStatement-classifyStatement"
                xmi:uuid="da90a78b-cc16-4ee2-ba20-f49a47f512f6" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_fromClass_classifyStatement-classifyStatement-lowerValue"
                    xmi:uuid="f835ae9a-c77d-4852-a29c-520a74364a0e" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_fromClass_classifyStatement-classifyStatement-upperValue"
                    xmi:uuid="ce1c22f4-ec4d-440f-981c-c470343bc6e7"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>classifyStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifyStatement"/>
                <association xmi:idref="Alf-A_fromClass_classifyStatement"/>
            </ownedEnd>
            <name>A_fromClass_classifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression1_loopVariableDefinition"
            xmi:uuid="1519aca0-65b3-440b-ba14-ca9b3727c794" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LoopVariableDefinition-expression1"/>
            <memberEnd xmi:idref="Alf-A_expression1_loopVariableDefinition-loopVariableDefinition"/>
            <ownedEnd xmi:id="Alf-A_expression1_loopVariableDefinition-loopVariableDefinition"
                xmi:uuid="b64cf9b4-d06f-469b-aadb-3042e6b892a6" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_expression1_loopVariableDefinition-loopVariableDefinition-lowerValue"
                    xmi:uuid="fce164c7-deaf-4b10-8dc2-5ec2eac0be36" xmi:type="uml:LiteralInteger"/>
                <name>loopVariableDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LoopVariableDefinition"/>
                <association xmi:idref="Alf-A_expression1_loopVariableDefinition"/>
            </ownedEnd>
            <name>A_expression1_loopVariableDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_whileStatement"
            xmi:uuid="83ada401-f7a7-4c1f-8020-c70069733d07" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-WhileStatement-body"/>
            <memberEnd xmi:idref="Alf-A_body_whileStatement-whileStatement"/>
            <ownedEnd xmi:id="Alf-A_body_whileStatement-whileStatement"
                xmi:uuid="2ae6d613-7a57-494c-a25b-b104a558e9ea" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_whileStatement-whileStatement-lowerValue"
                    xmi:uuid="69ea7bd0-de52-4142-8e36-2ba555546ca7" xmi:type="uml:LiteralInteger"/>
                <name>whileStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-WhileStatement"/>
                <association xmi:idref="Alf-A_body_whileStatement"/>
            </ownedEnd>
            <name>A_body_whileStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_annotation_statement"
            xmi:uuid="cad6565a-0a3a-4651-bfd4-1240219c65e7" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Statement-annotation"/>
            <memberEnd xmi:idref="Alf-A_annotation_statement-statement"/>
            <ownedEnd xmi:id="Alf-A_annotation_statement-statement"
                xmi:uuid="72787088-ae82-4373-a33c-b03c6624f8f0" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_annotation_statement-statement-lowerValue"
                    xmi:uuid="72af09af-7b6f-4561-862e-914f40e6b07f" xmi:type="uml:LiteralInteger"/>
                <name>statement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Statement"/>
                <association xmi:idref="Alf-A_annotation_statement"/>
            </ownedEnd>
            <name>A_annotation_statement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_expression_switchStatement"
            xmi:uuid="da5a0914-d316-4a65-bbaa-f9ea74a9f830" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SwitchStatement-expression"/>
            <memberEnd xmi:idref="Alf-A_expression_switchStatement-switchStatement"/>
            <ownedEnd xmi:id="Alf-A_expression_switchStatement-switchStatement"
                xmi:uuid="36f0c921-a5d5-410e-b9da-ab1a6275dd8e" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_expression_switchStatement-switchStatement-lowerValue"
                    xmi:uuid="cf77a2bc-1480-44b9-a56e-7578657032d4" xmi:type="uml:LiteralInteger"/>
                <name>switchStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SwitchStatement"/>
                <association xmi:idref="Alf-A_expression_switchStatement"/>
            </ownedEnd>
            <name>A_expression_switchStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_toClass_classifyStatement"
            xmi:uuid="8fd6ffb4-66a4-42b7-bbce-7084955477fa" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifyStatement-toClass"/>
            <memberEnd xmi:idref="Alf-A_toClass_classifyStatement-classifyStatement"/>
            <ownedEnd xmi:id="Alf-A_toClass_classifyStatement-classifyStatement"
                xmi:uuid="e3488545-3fba-4ca8-b375-711cdbe53562" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_toClass_classifyStatement-classifyStatement-lowerValue"
                    xmi:uuid="26fe33f6-ced0-4b99-90a6-c2ab60005890" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_toClass_classifyStatement-classifyStatement-upperValue"
                    xmi:uuid="b8dec743-8865-43fd-b32d-f08ec6bbda04"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>classifyStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifyStatement"/>
                <association xmi:idref="Alf-A_toClass_classifyStatement"/>
            </ownedEnd>
            <name>A_toClass_classifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_variableDefinition_forStatement"
            xmi:uuid="76ddd33d-5d4b-4d54-9e41-2dfc3e8c2ec5" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ForStatement-variableDefinition"/>
            <memberEnd xmi:idref="Alf-A_variableDefinition_forStatement-forStatement"/>
            <ownedEnd xmi:id="Alf-A_variableDefinition_forStatement-forStatement"
                xmi:uuid="d862758a-4afe-4374-a900-22745104e208" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_variableDefinition_forStatement-forStatement-lowerValue"
                    xmi:uuid="7789ba1b-631c-4983-9906-4f24ded1709e" xmi:type="uml:LiteralInteger"/>
                <name>forStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ForStatement"/>
                <association xmi:idref="Alf-A_variableDefinition_forStatement"/>
            </ownedEnd>
            <name>A_variableDefinition_forStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_assignmentBefore_block"
            xmi:uuid="d9f92fda-cb76-45be-97d3-4d67a60ba10e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Block-assignmentBefore"/>
            <memberEnd xmi:idref="Alf-A_assignmentBefore_block-block"/>
            <ownedEnd xmi:id="Alf-A_assignmentBefore_block-block"
                xmi:uuid="d1706985-8ac9-4e18-bca0-da45bb9556c9" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_assignmentBefore_block-block-lowerValue"
                    xmi:uuid="31ae7296-b88e-415b-b4f2-dd3f28ee2cb0" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_assignmentBefore_block-block-upperValue"
                    xmi:uuid="cca343af-6ca9-4aa8-960b-c055ce25c7de"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>block</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_assignmentBefore_block"/>
            </ownedEnd>
            <name>A_assignmentBefore_block</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_type_localNameDeclarationStatement"
            xmi:uuid="9fd21562-33ac-4d30-af2c-a4808eca7cee" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LocalNameDeclarationStatement-type"/>
            <memberEnd
                xmi:idref="Alf-A_type_localNameDeclarationStatement-localNameDeclarationStateament"/>
            <ownedEnd
                xmi:id="Alf-A_type_localNameDeclarationStatement-localNameDeclarationStateament"
                xmi:uuid="a6b056b1-82d3-4f5b-8f5d-453156f6ba51" xmi:type="uml:Property">
                <name>localNameDeclarationStateament</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <association xmi:idref="Alf-A_type_localNameDeclarationStatement"/>
            </ownedEnd>
            <name>A_type_localNameDeclarationStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_defaultClause_switchStatement"
            xmi:uuid="a6aefda5-59fe-4511-a485-1414fe7c3b09" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SwitchStatement-defaultClause"/>
            <memberEnd xmi:idref="Alf-A_defaultClause_switchStatement-switchStatement"/>
            <ownedEnd xmi:id="Alf-A_defaultClause_switchStatement-switchStatement"
                xmi:uuid="a205d073-a590-41bb-a626-d125fdcfb5a9" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_defaultClause_switchStatement-switchStatement-lowerValue"
                    xmi:uuid="972e593e-337f-4941-bdb8-266a2fc48f1f" xmi:type="uml:LiteralInteger"/>
                <name>switchStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SwitchStatement"/>
                <association xmi:idref="Alf-A_defaultClause_switchStatement"/>
            </ownedEnd>
            <name>A_defaultClause_switchStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_nonDefaultClause_switchStatement"
            xmi:uuid="2baa3fd0-a992-4a86-8e9a-19e0eb5fcfcb" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-SwitchStatement-nonDefaultClause"/>
            <memberEnd xmi:idref="Alf-A_nonDefaultClause_switchStatement-switchStatement"/>
            <ownedEnd xmi:id="Alf-A_nonDefaultClause_switchStatement-switchStatement"
                xmi:uuid="084ad711-16eb-47bf-bd8e-0899d83accf3" xmi:type="uml:Property">
                <name>switchStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-SwitchStatement"/>
                <association xmi:idref="Alf-A_nonDefaultClause_switchStatement"/>
            </ownedEnd>
            <name>A_nonDefaultClause_switchStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_forStatement"
            xmi:uuid="b37eedf2-cd6c-45f2-9a66-84d1f8f3f7be" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ForStatement-body"/>
            <memberEnd xmi:idref="Alf-A_body_forStatement-forStatement"/>
            <ownedEnd xmi:id="Alf-A_body_forStatement-forStatement"
                xmi:uuid="d642c71a-d727-4cce-b7af-d43726d635bf" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_forStatement-forStatement-lowerValue"
                    xmi:uuid="3413fba7-6119-438b-9f83-e8c50c498848" xmi:type="uml:LiteralInteger"/>
                <name>forStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ForStatement"/>
                <association xmi:idref="Alf-A_body_forStatement"/>
            </ownedEnd>
            <name>A_body_forStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_toList_classifyStatement"
            xmi:uuid="756e9db5-8de5-4012-bd88-0e614768131a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifyStatement-toList"/>
            <memberEnd xmi:idref="Alf-A_toList_classifyStatement-classifyStatement"/>
            <ownedEnd xmi:id="Alf-A_toList_classifyStatement-classifyStatement"
                xmi:uuid="72217685-7fa2-4456-9813-593242b21e75" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_toList_classifyStatement-classifyStatement-lowerValue"
                    xmi:uuid="bd5b474e-888d-4bec-a3cb-2b285c5abe8b" xmi:type="uml:LiteralInteger"/>
                <name>classifyStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifyStatement"/>
                <association xmi:idref="Alf-A_toList_classifyStatement"/>
            </ownedEnd>
            <name>A_toList_classifyStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_localNameDeclarationStatement"
            xmi:uuid="89bc087d-be52-4652-aeba-727131388a56" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-LocalNameDeclarationStatement-typeName"/>
            <memberEnd
                xmi:idref="Alf-A_typeName_localNameDeclarationStatement-localNameDeclarationStatement"/>
            <ownedEnd
                xmi:id="Alf-A_typeName_localNameDeclarationStatement-localNameDeclarationStatement"
                xmi:uuid="1e9bfb4a-78ac-4b11-a867-29b383d61a45" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_typeName_localNameDeclarationStatement-localNameDeclarationStatement-lowerValue"
                    xmi:uuid="5e4ce527-3d1c-4fd7-852d-c677519f0dd0" xmi:type="uml:LiteralInteger"/>
                <name>localNameDeclarationStatement</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
                <association xmi:idref="Alf-A_typeName_localNameDeclarationStatement"/>
            </ownedEnd>
            <name>A_typeName_localNameDeclarationStatement</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PropertyDefinition"
            xmi:uuid="6e2afe36-e79a-4563-b4a3-8b2fde361772" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PropertyDefinition-ownedComment"
                xmi:uuid="7db1cc28-9dd5-43de-a203-92983f849134" xmi:type="uml:Comment">
                <body>A typed element definition for a property (attribute or association end).
</body>
                <annotatedElement xmi:idref="Alf-PropertyDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializer"
                xmi:uuid="5765359d-e9e5-4f96-a540-7cb58aea958f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyDefinition"/>
                <specification
                    xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializer-specification"
                    xmi:uuid="de1bce94-10cc-4ca4-a9d5-1586e346b7bc" xmi:type="uml:OpaqueExpression">
                    <body>If a property definition has an initializer, then the initializer expression must be assignable to the property definition. There are no assignments before an initializer expression.
</body>
                    <language>English</language>
                </specification>
                <name>propertyDefinitionInitializer</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation"
                xmi:uuid="81f62ed9-577e-46c8-bf45-61282d3bf5ad" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyDefinition"/>
                <specification
                    xmi:id="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation-specification"
                    xmi:uuid="17bc9918-2acd-420a-9132-fe41cdb2d2b6" xmi:type="uml:OpaqueExpression">
                    <body>A property definition requires collection conversion if its initializer has a collection class as its type and the property definition does not.
</body>
                    <language>English</language>
                </specification>
                <name>propertyDefinitionIsCollectionConversionDerivation</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation"
                xmi:uuid="7d3d9c49-91c0-4bd4-8f55-0941d7566d87" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyDefinition"/>
                <specification
                    xmi:id="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation-specification"
                    xmi:uuid="538ec8fe-82b4-4711-9886-4ff2d1468d35" xmi:type="uml:OpaqueExpression">
                    <body>A property definition requires BitString conversion if its type is BitString and the type of its initializer is Integer or a collection class whose sequence type is Integer.
</body>
                    <language>English</language>
                </specification>
                <name>propertyDefinitionIsBitStringConversionDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation"
                xmi:uuid="d8d8d3fc-f15b-49c5-995f-881a9097ad98" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyDefinition"/>
                <specification
                    xmi:id="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation-specification"
                    xmi:uuid="933c710c-9391-454e-aabb-eebcbff4360f" xmi:type="uml:OpaqueExpression">
                    <body>A property definition is a feature.
</body>
                    <language>English</language>
                </specification>
                <name>propertyDefinitionIsFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializerType"
                xmi:uuid="e2196748-9ab1-498f-8411-f6a903d253ad" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PropertyDefinition"/>
                <specification
                    xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializerType-specification"
                    xmi:uuid="a43a38d2-57ac-473f-b568-da7b6717ea27" xmi:type="uml:OpaqueExpression">
                    <body>If the initializer of a property definition is an instance creation expression with no constructor, and the type of the property definition is a class or (structured) data type, then the referent of the expression is the type of the property definition. If the initializer of a property definition is a sequence construction expression with no type name, but with non-empty elements, then the type of the expression is the type of the property definition and the expression has multiplicity if and only if the multiplicity upper bound of the property definition is greater than 1.
</body>
                    <language>English</language>
                </specification>
                <name>propertyDefinitionInitializerType</name>
            </ownedRule>
            <generalization xmi:id="Alf-PropertyDefinition-generalization"
                xmi:uuid="4b7b6e88-f74a-4cd1-88ca-2a78863cfcf4" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-TypedElementDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-PropertyDefinition-isComposite"
                xmi:uuid="511af590-88b4-4629-992f-b2d73cd5a69e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-PropertyDefinition-isComposite-ownedComment"
                    xmi:uuid="51b81e96-16d3-4828-b2bf-2b8ca0da2454" xmi:type="uml:Comment">
                    <body>Whether the property being defined has composite aggregation.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-isComposite"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-PropertyDefinition-isComposite-defaultValue"
                    xmi:uuid="d8dae58e-41c9-49c7-8b85-31e027e2f1aa" xmi:type="uml:LiteralBoolean"/>
                <name>isComposite</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-PropertyDefinition-initializer"
                xmi:uuid="6fccdd7f-9503-4b79-8c34-85b244adca54" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-PropertyDefinition-initializer-ownedComment"
                    xmi:uuid="a04d0ac0-4f85-43d7-af0b-697b3a64b0a1" xmi:type="uml:Comment">
                    <body>The expression to be evaluated to initialize the property.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-initializer"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-PropertyDefinition-initializer-lowerValue"
                    xmi:uuid="f32386a4-e3c5-4e82-be46-10fb63639c19" xmi:type="uml:LiteralInteger"/>
                <name>initializer</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Expression"/>
                <association xmi:idref="Alf-A_initializer_propertyDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-PropertyDefinition-isCollectionConversion"
                xmi:uuid="ce364b68-5ee3-4b99-98fd-5064d3dec6f1" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-PropertyDefinition-isCollectionConversion-ownedComment"
                    xmi:uuid="c5da8e1c-b9f5-4863-9020-ab2c3b3d9415" xmi:type="uml:Comment">
                    <body>Whether collection conversion is required for the initialization of this property.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-isCollectionConversion"/>
                </ownedComment>
                <name>isCollectionConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-PropertyDefinition-isBitStringConversion"
                xmi:uuid="dbf423fd-01d0-46f1-88cc-72a1d2abf4f2" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-PropertyDefinition-isBitStringConversion-ownedComment"
                    xmi:uuid="bc80ce5d-2c5e-4968-9e2d-2f51fbef7f6a" xmi:type="uml:Comment">
                    <body>Whether BitString conversion is required for the initialization of this property.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-isBitStringConversion"/>
                </ownedComment>
                <name>isBitStringConversion</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-PropertyDefinition-annotationAllowed"
                xmi:uuid="a32aab0f-a988-410c-b0c4-0c99a648eaa2" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-PropertyDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="f0a861b9-5ee9-4012-9771-50547a2d84cf" xmi:type="uml:Comment">
                    <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Property.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PropertyDefinition-annotationAllowed-annotation"
                    xmi:uuid="cc457fec-3ce5-4987-b31b-d9ef6f1d3b3b" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-PropertyDefinition-annotationAllowed-result"
                    xmi:uuid="b7291aec-b634-45e3-8462-1c37ec4c7245" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-PropertyDefinition-isSameKindAs"
                xmi:uuid="899e5ac1-44c8-4af1-b8d7-74ae1570bafa" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-PropertyDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="854d80a6-00e0-4a94-8b95-b976875064c8" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a PropertyDefinition or an imported member whose referent is a PropertyDefinition or a Property.
</body>
                    <annotatedElement xmi:idref="Alf-PropertyDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PropertyDefinition-isSameKindAs-member"
                    xmi:uuid="b57667b4-bce0-44db-be33-4fcaee88639a" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-PropertyDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="34f4c8aa-b2a4-41a5-8393-f7d738dadab4" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-PropertyDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-PropertyDefinition-isSameKindAs-result"
                    xmi:uuid="1acef9db-a1f8-4609-b832-a90c3bb7fdc7" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>PropertyDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-StereotypeAnnotation"
            xmi:uuid="f83adccb-d194-4166-85f2-8e9ee7cbbabd" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-StereotypeAnnotation-ownedComment"
                xmi:uuid="95ce0954-7300-4d1a-86eb-35500da50bda" xmi:type="uml:Comment">
                <body>An annotation of a member definition indicating the application of a stereotype (or one of a small number of special-case annotations).
</body>
                <annotatedElement xmi:idref="Alf-StereotypeAnnotation"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation"
                xmi:uuid="a49ccaeb-c172-4797-a0d7-aa9ff431ad02" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation-specification"
                    xmi:uuid="5148fb5e-8301-4169-85c2-339622f0f719" xmi:type="uml:OpaqueExpression">
                    <body>Unless the stereotype name is "apply", "primitive" or "external" then the stereotype for a stereotype annotation is the stereotype denoted by the stereotype name.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationStereotypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName"
                xmi:uuid="052c3423-037e-45e6-92e8-85334b8dc9aa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName-specification"
                    xmi:uuid="e995ac90-7dbe-449e-8cb3-b5c1a24c573d" xmi:type="uml:OpaqueExpression">
                    <body>The stereotype name of a stereotype annotation must either be one of "apply", "primitive" or "external", or it must denote a single stereotype from a profile applied to an enclosing package. The stereotype name does not need to be qualified if there is only one applied profile with a stereotype of that name or if the there is a standard UML profile with the name.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationStereotypeName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationApply"
                xmi:uuid="687de2f6-51ea-45ee-b46e-f2c16256b348" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationApply-specification"
                    xmi:uuid="84a4e04c-562c-4962-a486-6a5a6a9b066a" xmi:type="uml:OpaqueExpression">
                    <body>If the stereotype name of a stereotype annotation is "apply", then it must have a name list and all of the names in the list must resolve to profiles.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationApply</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive"
                xmi:uuid="9d36992a-7541-465e-aaa0-ad46fae2062d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive-specification"
                    xmi:uuid="77e1178d-cfb6-4825-8646-8243fa668621" xmi:type="uml:OpaqueExpression">
                    <body>If the stereotype name of a stereotype annotation is "primitive", then it may not have tagged values or names.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationPrimitive</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationExternal"
                xmi:uuid="3822c486-f6db-49d2-a48c-94cf1f5befda" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationExternal-specification"
                    xmi:uuid="ad001b8e-9cc1-4686-bc54-251070c574c3" xmi:type="uml:OpaqueExpression">
                    <body>If the stereotype name of a stereotype annotation is "external", then it may optionally have a single tagged value with the name "file" and no operator.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationExternal</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues"
                xmi:uuid="986dbcc1-fdbd-42af-8b47-749756a88a16" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues-specification"
                    xmi:uuid="431752d3-45df-478e-8ec1-105e6aab657a" xmi:type="uml:OpaqueExpression">
                    <body>If a stereotype annotation has a stereotype and tagged values, then the each tagged value must have the name of an attribute of the stereotype and a value that is legally interpretable for the type of that attribute.
 </body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationTaggedValues</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationNames"
                xmi:uuid="94c03638-28a9-469e-a892-10a4d8727f32" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-StereotypeAnnotation"/>
                <specification
                    xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationNames-specification"
                    xmi:uuid="a6d0834d-2c59-43ef-9578-7f37126c159c" xmi:type="uml:OpaqueExpression">
                    <body>If a stereotype annotation has a stereotype and a list of names, then all the names in the list must resolve to visible model elements and the stereotype must have a single attribute with a (metaclass) type and multiplicity that are consistent with the types and number of the elements denoted by the given names.
</body>
                    <language>English</language>
                </specification>
                <name>stereotypeAnnotationNames</name>
            </ownedRule>
            <generalization xmi:id="Alf-StereotypeAnnotation-generalization"
                xmi:uuid="d853b377-1ce7-43fd-8d29-048169ce2e93" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-StereotypeAnnotation-taggedValues"
                xmi:uuid="84d35a83-24a0-4a45-8f33-1bc5de3ce77d" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-StereotypeAnnotation-taggedValues-ownedComment"
                    xmi:uuid="0ef8962e-e2a5-47db-908d-7fc6d767431f" xmi:type="uml:Comment">
                    <body>A set of tagged values for the applied stereotype.
</body>
                    <annotatedElement xmi:idref="Alf-StereotypeAnnotation-taggedValues"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-StereotypeAnnotation-taggedValues-lowerValue"
                    xmi:uuid="ac31ce83-b412-415a-a07b-93f7ac8b0ab9" xmi:type="uml:LiteralInteger"/>
                <name>taggedValues</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-TaggedValueList"/>
                <association xmi:idref="Alf-A_taggedValues_stereotypeAnnotation"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-StereotypeAnnotation-names"
                xmi:uuid="29ce449b-0a02-4a02-b86a-7c33ae292417" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-StereotypeAnnotation-names-ownedComment"
                    xmi:uuid="418dd8dd-2533-40a9-9aab-e01fb096919e" xmi:type="uml:Comment">
                    <body>A set of references to model elements required for the stereotype being applied.
</body>
                    <annotatedElement xmi:idref="Alf-StereotypeAnnotation-names"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-StereotypeAnnotation-names-lowerValue"
                    xmi:uuid="66d9be13-f0fe-4d0b-b01a-8a2376d053d0" xmi:type="uml:LiteralInteger"/>
                <name>names</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_names_stereotypeAnnotation"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-StereotypeAnnotation-stereotypeName"
                xmi:uuid="36a71042-17b3-424a-9110-b595235bea83" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeName-ownedComment"
                    xmi:uuid="2167d37d-a5e7-4eb4-a74c-f3740fe72e97" xmi:type="uml:Comment">
                    <body>The name of the stereotype being applied.
</body>
                    <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeName"/>
                </ownedComment>
                <name>stereotypeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_stereotypeName_stereotypeAnnotation"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-StereotypeAnnotation-stereotype"
                xmi:uuid="a424ca8f-2b4e-416b-b5f2-a2109ef9b787" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Stereotype"/>
                <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotype-ownedComment"
                    xmi:uuid="469397bf-829e-46a5-8145-01e228d233c3" xmi:type="uml:Comment">
                    <body>The stereotype denoted by the stereotype name.
</body>
                    <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotype"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-StereotypeAnnotation-stereotype-lowerValue"
                    xmi:uuid="46065255-5ba8-4d37-a78e-8ebb68d78185" xmi:type="uml:LiteralInteger"/>
                <name>stereotype</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <association xmi:idref="Alf-A_stereotype_stereotypeAnnotation"/>
            </ownedAttribute>
            <name>StereotypeAnnotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PackageDefinition"
            xmi:uuid="209cdd59-d172-494d-bbbc-ad2217db7117" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PackageDefinition-ownedComment"
                xmi:uuid="380e600b-1d0d-4243-aea8-e4754053dd57" xmi:type="uml:Comment">
                <body>The definition of a package, all of whose members must be packageable elements.
</body>
                <annotatedElement xmi:idref="Alf-PackageDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation"
                xmi:uuid="89a55167-7dfe-45d7-bc74-aefcd3e613bb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PackageDefinition"/>
                <specification
                    xmi:id="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation-specification"
                    xmi:uuid="aeecb214-aea9-40e1-b077-32024900f6d4" xmi:type="uml:OpaqueExpression">
                    <body>The applied profiles of a package definition are the profiles listed in any @apply annotations on the package.
</body>
                    <language>English</language>
                </specification>
                <name>packageDefinitionAppliedProfileDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-PackageDefinition-generalization"
                xmi:uuid="bd4915e9-a918-4f1e-ace5-35a68743f49c" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-NamespaceDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-PackageDefinition-appliedProfile"
                xmi:uuid="d71c72c5-857d-4907-bc16-4d293eb4564d" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Profile"/>
                <ownedComment xmi:id="Alf-PackageDefinition-appliedProfile-ownedComment"
                    xmi:uuid="beb04265-3cde-475e-983f-255a046b733d" xmi:type="uml:Comment">
                    <body>The profiles applied (directly) to this package.
</body>
                    <annotatedElement xmi:idref="Alf-PackageDefinition-appliedProfile"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-PackageDefinition-appliedProfile-lowerValue"
                    xmi:uuid="e98b4275-8c8a-49ed-bf05-08b843754faa" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-PackageDefinition-appliedProfile-upperValue"
                    xmi:uuid="66eac7d4-de7d-4515-9673-71a58f7f9812"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>appliedProfile</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <association xmi:idref="Alf-A_appliedProfile_packageDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-PackageDefinition-annotationAllowed"
                xmi:uuid="022867f5-4271-4e0a-b240-06f7cb9218cc" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-PackageDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="b291a70b-d22b-47a7-b21c-db8bd5e20cd2" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed on any namespace definition, a package definition allows @apply annotations plus any stereotype whose metaclass is consistent with Package.
</body>
                    <annotatedElement xmi:idref="Alf-PackageDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PackageDefinition-annotationAllowed-annotation"
                    xmi:uuid="5ea60902-0c41-4bcb-a4d7-c0f9676f1a1a" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-PackageDefinition-annotationAllowed-result"
                    xmi:uuid="dca0458d-5890-4e14-aee7-9bc7f274b267" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-PackageDefinition-matchForStub"
                xmi:uuid="1c62f712-7c24-46d6-b84d-1764e991bd98" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
                <ownedComment xmi:id="Alf-PackageDefinition-matchForStub-ownedComment"
                    xmi:uuid="0a93d211-e58e-445b-86fb-e9b57e25c489" xmi:type="uml:Comment">
                    <body>Returns true of the namespace definition associated with the given unit definition is a package definition.
</body>
                    <annotatedElement xmi:idref="Alf-PackageDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PackageDefinition-matchForStub-unit"
                    xmi:uuid="5ccfcf09-c82d-48ac-8037-7563c0e0b16f" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-PackageDefinition-matchForStub-result"
                    xmi:uuid="e35c4c69-2a81-4415-9cc9-16031caf6d17" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-PackageDefinition-isSameKindAs"
                xmi:uuid="376e200b-6d9c-444e-aa0a-bdec921655ab" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-PackageDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="376c57f2-9da1-4c06-8e69-7b398a077524" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a PackageDefinition or an imported member whose referent is a PackageDefinition or a Package.
</body>
                    <annotatedElement xmi:idref="Alf-PackageDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-PackageDefinition-isSameKindAs-member"
                    xmi:uuid="3267cd38-4013-4960-a928-0527d8145934" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-PackageDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="6b682f74-3bf4-45f8-b0e7-5550f16cc14a" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-PackageDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-PackageDefinition-isSameKindAs-result"
                    xmi:uuid="b4657778-6a13-4ad3-ad47-bd15e1875555" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>PackageDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-SignalReceptionDefinition"
            xmi:uuid="5a692fc7-7d15-482c-bc30-75b8a4c54fd8" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SignalReceptionDefinition-ownedComment"
                xmi:uuid="d6efa91e-4651-4f0a-8787-53f6e7ed17a3" xmi:type="uml:Comment">
                <body>The definition of both a signal and a reception of that signal as a feature of the containing active class.
</body>
                <annotatedElement xmi:idref="Alf-SignalReceptionDefinition"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation"
                xmi:uuid="1ceae7c3-5109-417b-af96-f0c3c20d1e24" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SignalReceptionDefinition"/>
                <specification
                    xmi:id="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation-specification"
                    xmi:uuid="23f3522a-20c4-4e83-9964-04c12237dfb4" xmi:type="uml:OpaqueExpression">
                    <body>A signal reception definition is a feature.
</body>
                    <language>English</language>
                </specification>
                <name>signalReceptionDefinitionIsFeatureDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-SignalReceptionDefinition-generalization"
                xmi:uuid="41ca822e-4dd4-40ea-b6c5-a17c308e2815" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SignalDefinition"/>
            </generalization>
            <name>SignalReceptionDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-PackageImportReference"
            xmi:uuid="a044383b-ff47-4058-aa9b-8300414f0d28" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-PackageImportReference-ownedComment"
                xmi:uuid="fe42d1bb-339a-49fd-abf1-95fd731fccbc" xmi:type="uml:Comment">
                <body>An import reference to a package all of whose public members are to be imported.
</body>
                <annotatedElement xmi:idref="Alf-PackageImportReference"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-PackageImportReference-packageImportReferenceReferent"
                xmi:uuid="09f9318b-e629-40f3-b3ba-f4cb78a9426f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-PackageImportReference"/>
                <specification
                    xmi:id="Alf-PackageImportReference-packageImportReferenceReferent-specification"
                    xmi:uuid="ed0fa840-ce01-440e-a560-c577e46d4bab" xmi:type="uml:OpaqueExpression">
                    <body>The referent of a package import must be a package.
</body>
                    <language>English</language>
                </specification>
                <name>packageImportReferenceReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-PackageImportReference-generalization"
                xmi:uuid="0f1af829-2497-40b1-9c5c-2a8e023a0669" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ImportReference"/>
            </generalization>
            <name>PackageImportReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ImportReference"
            xmi:uuid="486dbf7a-c48e-4e6c-89dd-5a1c2dee5021" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ImportReference-ownedComment"
                xmi:uuid="fead8d56-bbbf-4883-8706-f0376525b65f" xmi:type="uml:Comment">
                <body>A reference to an element or package to be imported into a unit.
</body>
                <annotatedElement xmi:idref="Alf-ImportReference"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ImportReference-importReferenceReferentDerivation"
                xmi:uuid="0c28d350-4a9e-49cf-9c7e-bf9a67bee4b1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ImportReference"/>
                <specification
                    xmi:id="Alf-ImportReference-importReferenceReferentDerivation-specification"
                    xmi:uuid="793699a0-c109-44dd-a7ba-abca7dd5aaf9" xmi:type="uml:OpaqueExpression">
                    <body>The referent of an import reference is the element denoted by the referent name.
</body>
                    <language>English</language>
                </specification>
                <name>importReferenceReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ImportReference-importReferenceReferent"
                xmi:uuid="ba07c7c3-3636-4cd5-90b6-25ea81116c1d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ImportReference"/>
                <specification xmi:id="Alf-ImportReference-importReferenceReferent-specification"
                    xmi:uuid="7192ea48-2fab-49aa-bf64-2764daf90869" xmi:type="uml:OpaqueExpression">
                    <body>The referent name of an import reference must resolve to a single element with public or empty visibility.
</body>
                    <language>English</language>
                </specification>
                <name>importReferenceReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-ImportReference-generalization"
                xmi:uuid="29c8012e-f6f6-4c78-bb26-10b86360fd63" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ImportReference-visibility"
                xmi:uuid="b66f054c-e483-407b-bce5-abefa03a7415" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-ImportReference-visibility-ownedComment"
                    xmi:uuid="53c116e2-8766-4099-9542-d49a8ac4ce9f" xmi:type="uml:Comment">
                    <body>An indication of the visibility of the import.
</body>
                    <annotatedElement xmi:idref="Alf-ImportReference-visibility"/>
                </ownedComment>
                <name>visibility</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ImportReference-referentName"
                xmi:uuid="384491d9-a22a-4b94-ad75-0d788da76f99" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ImportReference-referentName-ownedComment"
                    xmi:uuid="c697826a-852d-48d6-8f54-39ee4aee838b" xmi:type="uml:Comment">
                    <body>The name of the element or package to be imported.
</body>
                    <annotatedElement xmi:idref="Alf-ImportReference-referentName"/>
                </ownedComment>
                <name>referentName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_referentName_importReference"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ImportReference-unit"
                xmi:uuid="a65a3137-9cf5-4fd9-8268-4e1a4308e1ed" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ImportReference-unit-ownedComment"
                    xmi:uuid="9339c3d2-168e-4c9f-9e21-e1a2ac9409ea" xmi:type="uml:Comment">
                    <body>The unit that is making this import reference.
</body>
                    <annotatedElement xmi:idref="Alf-ImportReference-unit"/>
                </ownedComment>
                <name>unit</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_import_unit"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ImportReference-referent"
                xmi:uuid="164cc511-11ac-4800-a64e-0ff2de4e5780" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ImportReference-referent-ownedComment"
                    xmi:uuid="a643550a-4d7a-4fa7-b799-5445e54623bc" xmi:type="uml:Comment">
                    <body>A reference to the imported element denoted by the given qualified name.
</body>
                    <annotatedElement xmi:idref="Alf-ImportReference-referent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ImportReference-referent-lowerValue"
                    xmi:uuid="6aa3c762-5564-4104-9d1a-835b3f354035" xmi:type="uml:LiteralInteger"/>
                <name>referent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_importReference"/>
            </ownedAttribute>
            <name>ImportReference</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-AssociationDefinition"
            xmi:uuid="fdcb8cbc-868d-402b-9323-3a1c6122b81a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-AssociationDefinition-ownedComment"
                xmi:uuid="c3bb9802-fae7-4730-94ce-8708bdc1347a" xmi:type="uml:Comment">
                <body>The definition of an association, whose members must all be properties.
</body>
                <annotatedElement xmi:idref="Alf-AssociationDefinition"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-AssociationDefinition-associationDefinitionSpecializationReferent"
                xmi:uuid="16720cf1-48ab-4c99-940a-81524186cd11" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-AssociationDefinition"/>
                <specification
                    xmi:id="Alf-AssociationDefinition-associationDefinitionSpecializationReferent-specification"
                    xmi:uuid="50981a83-ce7f-4134-b376-2440df24b628" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of an association definition must all be associations.
</body>
                    <language>English</language>
                </specification>
                <name>associationDefinitionSpecializationReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-AssociationDefinition-generalization"
                xmi:uuid="e0b207a5-2018-4bc3-a866-53f9f869515c" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-AssociationDefinition-matchForStub"
                xmi:uuid="2250092e-980f-44af-ad2d-be36ceb26659" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-AssociationDefinition-matchForStub-ownedComment"
                    xmi:uuid="21dfefd9-74af-4140-ba2b-90ecc156428e" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this association definition considered as a classifier definition and the subunit is for an association definition.
</body>
                    <annotatedElement xmi:idref="Alf-AssociationDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssociationDefinition-matchForStub-unit"
                    xmi:uuid="0b948c9d-595c-4824-a636-2b7c15ac881f" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssociationDefinition-matchForStub-result"
                    xmi:uuid="68dfb504-6a78-4b9b-b6a0-1145112aed27" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-AssociationDefinition-annotationAllowed"
                xmi:uuid="1f7f5be3-9a5b-4c0e-9858-a979ebccdd4a" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-AssociationDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="1592a588-95a3-471a-91ef-b85454b85d59" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, an association definition allows an annotation for any stereotype whose metaclass is consistent with Association.
</body>
                    <annotatedElement xmi:idref="Alf-AssociationDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssociationDefinition-annotationAllowed-annotation"
                    xmi:uuid="1a231007-cc4b-41d9-8f9d-1039697539aa" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssociationDefinition-annotationAllowed-result"
                    xmi:uuid="5b6d94ea-268f-40ec-9b2a-2a4a4cb2d773" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-AssociationDefinition-isSameKindAs"
                xmi:uuid="335bf6b5-1b8f-45aa-a46c-9ddefde75323" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-AssociationDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="2a4167b8-31f9-49d1-8a15-abb260e1e7d1" xmi:type="uml:Comment">
                    <body>Return true if the given member is either an AssociationDefinition or an imported member whose referent is an AssociationDefinition or an Association.
</body>
                    <annotatedElement xmi:idref="Alf-AssociationDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-AssociationDefinition-isSameKindAs-member"
                    xmi:uuid="4704aedc-e196-49e4-867d-60292fa03103" xmi:type="uml:Parameter">
                    <ownedComment
                        xmi:id="Alf-AssociationDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="7d130a23-3b51-4482-8f17-dab0160d3f7e" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-AssociationDefinition-isSameKindAs-member"
                        />
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-AssociationDefinition-isSameKindAs-result"
                    xmi:uuid="d32e9622-af93-4d2e-99e1-2ae6a579c139" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>AssociationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-TaggedValueList"
            xmi:uuid="feec76fd-39cc-40e2-914e-d9c43f65e32e" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-TaggedValueList-ownedComment"
                xmi:uuid="74369b9f-2dc9-4ecf-927f-50881e0a14a6" xmi:type="uml:Comment">
                <body>A set of tagged values for a stereotype application.
</body>
                <annotatedElement xmi:idref="Alf-TaggedValueList"/>
            </ownedComment>
            <generalization xmi:id="Alf-TaggedValueList-generalization"
                xmi:uuid="257f6808-0faa-4e22-9d8a-1190c66f45f7" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-TaggedValueList-taggedValue"
                xmi:uuid="499a733d-2fff-402c-9c05-93315a4e1de7" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-TaggedValueList-taggedValue-ownedComment"
                    xmi:uuid="8e12aff8-6fa5-4d1f-b185-0bd332ec6d56" xmi:type="uml:Comment">
                    <body>The tagged values in the set.
</body>
                    <annotatedElement xmi:idref="Alf-TaggedValueList-taggedValue"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-TaggedValueList-taggedValue-lowerValue"
                    xmi:uuid="3c35bce2-5529-4042-a27f-c605dde9a668" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-TaggedValueList-taggedValue-upperValue"
                    xmi:uuid="3838ff04-fc06-4a7b-a9c3-f34bbc22f3b0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>taggedValue</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-TaggedValue"/>
                <association xmi:idref="Alf-A_taggedValue_taggedValueList"/>
            </ownedAttribute>
            <name>TaggedValueList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-EnumerationLiteralName"
            xmi:uuid="ef79a10a-ff27-4a0f-b536-e53e4f24e0e3" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-EnumerationLiteralName-ownedComment"
                xmi:uuid="7998293b-f32d-4b44-9f47-dd63b6dd9427" xmi:type="uml:Comment">
                <body>The definition of an enumeration literal, as a member of an enumeration definition.
</body>
                <annotatedElement xmi:idref="Alf-EnumerationLiteralName"/>
            </ownedComment>
            <generalization xmi:id="Alf-EnumerationLiteralName-generalization"
                xmi:uuid="a6a14823-cff0-4b1b-b716-36ddf9ded31e" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Member"/>
            </generalization>
            <ownedOperation xmi:id="Alf-EnumerationLiteralName-annotationAllowed"
                xmi:uuid="f80fc9e6-0a4e-41af-bab9-0de832a4100c" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-EnumerationLiteralName-annotationAllowed-ownedComment"
                    xmi:uuid="34138026-0b0e-4ef6-8b92-898baa22773d" xmi:type="uml:Comment">
                    <body>Returns false. (Enumeration literal name cannot have annotations.)

</body>
                    <annotatedElement xmi:idref="Alf-EnumerationLiteralName-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EnumerationLiteralName-annotationAllowed-annotation"
                    xmi:uuid="af7fe60d-9c49-4662-9009-fab50b548942" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EnumerationLiteralName-annotationAllowed-result"
                    xmi:uuid="596dc428-0263-4df2-ad71-75801c18f39d" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>EnumerationLiteralName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ActiveClassDefinition"
            xmi:uuid="05e1c278-bff3-4230-9df6-09df7355f5a4" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ActiveClassDefinition-ownedComment"
                xmi:uuid="5596f140-1d00-4f3d-88db-b86658d239cb" xmi:type="uml:Comment">
                <body>The definition of an active class.
</body>
                <annotatedElement xmi:idref="Alf-ActiveClassDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior"
                xmi:uuid="8a01c234-0c5a-4526-a0b0-ace6f927ec00" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActiveClassDefinition"/>
                <specification
                    xmi:id="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior-specification"
                    xmi:uuid="494bf657-3188-428e-8372-8cf79ee30f2d" xmi:type="uml:OpaqueExpression">
                    <body>If an active class definition is not abstract, then it must have a classifier behavior.
</body>
                    <language>English</language>
                </specification>
                <name>activeClassDefinitionClassifierBehavior</name>
            </ownedRule>
            <generalization xmi:id="Alf-ActiveClassDefinition-generalization"
                xmi:uuid="ffc00f98-3c8d-4817-b5c3-920f6ad46db2" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ActiveClassDefinition-classifierBehavior"
                xmi:uuid="fb23633c-59e0-4247-acdc-b32551e81abd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ActiveClassDefinition-classifierBehavior-ownedComment"
                    xmi:uuid="63949ca4-bbf4-4b45-999d-ab50dd6e2f83" xmi:type="uml:Comment">
                    <body>The definition of an activity (which may be a stub) to act as the classifier behavior of the active class.
</body>
                    <annotatedElement xmi:idref="Alf-ActiveClassDefinition-classifierBehavior"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ActiveClassDefinition-classifierBehavior-lowerValue"
                    xmi:uuid="ef9494d8-d53c-4297-962f-260f15abde17" xmi:type="uml:LiteralInteger"/>
                <name>classifierBehavior</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ActivityDefinition"/>
                <association xmi:idref="Alf-A_classifierBehavior_activeClassDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ActiveClassDefinition-matchForStub"
                xmi:uuid="cd7256cd-1c47-4998-b6bf-32b0f5624b0d" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-ActiveClassDefinition-matchForStub-ownedComment"
                    xmi:uuid="82d039cf-6210-44ad-af18-35a1d2a36ae1" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this active class definition considered as a class definition and the subunit is for an active class definition.
</body>
                    <annotatedElement xmi:idref="Alf-ActiveClassDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ActiveClassDefinition-matchForStub-unit"
                    xmi:uuid="898e0d34-8785-4af3-a11f-96ad4ab1626c" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ActiveClassDefinition-matchForStub-result"
                    xmi:uuid="2388eb36-cfd4-4fe2-9513-933f1cb60a7f" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ActiveClassDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-TypedElementDefinition"
            xmi:uuid="b83d83f2-3c55-4348-b0d7-ca10b5de076e" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-TypedElementDefinition-ownedComment"
                xmi:uuid="a3a58850-e89c-407c-b58d-aa826c298187" xmi:type="uml:Comment">
                <body>The common properties of the definitions of typed elements.
</body>
                <annotatedElement xmi:idref="Alf-TypedElementDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation"
                xmi:uuid="1b892bbb-fc4e-4839-8a51-c7f8aee7df01" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-TypedElementDefinition"/>
                <specification
                    xmi:id="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation-specification"
                    xmi:uuid="14a6a530-30c2-44a1-9395-d420137b268e" xmi:type="uml:OpaqueExpression">
                    <body>If the lower bound string image of a typed element definition is not empty, then the integer lower bound is the integer value of the lower bound string. Otherwise the lower bound is equal to the upper bound, unless the upper bound is unbounded, in which case the lower bound is 0.
</body>
                    <language>English</language>
                </specification>
                <name>typedElementDefinitionLowerDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation"
                xmi:uuid="79378a88-5365-4e85-a05f-5e34dff8e987" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-TypedElementDefinition"/>
                <specification
                    xmi:id="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation-specification"
                    xmi:uuid="dd49791d-aa5b-4468-bcd3-d37b0783d36b" xmi:type="uml:OpaqueExpression">
                    <body>The unlimited natural upper bound value is the unlimited natural value of the uper bound string (with "*" representing the unbounded value).
</body>
                    <language>English</language>
                </specification>
                <name>typedElementDefinitionUpperDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation"
                xmi:uuid="d8c5bfbc-5490-4eb2-a2fc-429d1e99305a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-TypedElementDefinition"/>
                <specification
                    xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation-specification"
                    xmi:uuid="4f36e15f-69f6-422e-b435-c1bf53b67f2f" xmi:type="uml:OpaqueExpression">
                    <body>The type of a typed element definition is the single classifier referent of the type name.
</body>
                    <language>English</language>
                </specification>
                <name>typedElementDefinitionTypeDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeName"
                xmi:uuid="7cbefd92-5cc6-426b-b309-2f17565799df" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-TypedElementDefinition"/>
                <specification
                    xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeName-specification"
                    xmi:uuid="e472e5eb-4b7b-4e67-853f-71dd43a798df" xmi:type="uml:OpaqueExpression">
                    <body>The type name of a typed element definition must have a single classifier referent. This referent may not be a template.
</body>
                    <language>English</language>
                </specification>
                <name>typedElementDefinitionTypeName</name>
            </ownedRule>
            <generalization xmi:id="Alf-TypedElementDefinition-generalization"
                xmi:uuid="ad4d4ead-954c-42c4-8631-867b622ad28b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Member"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-lowerBound"
                xmi:uuid="3909bfc7-ad2a-42ac-943b-6fc6ebd16aa9" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-lowerBound-ownedComment"
                    xmi:uuid="473329ad-a851-4cc6-87dd-564adda62a58" xmi:type="uml:Comment">
                    <body>The string image of the literal given to specify the lower bound of the multiplicity of the element being defined.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-lowerBound"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-TypedElementDefinition-lowerBound-lowerValue"
                    xmi:uuid="24ce9ea2-c3d5-4c02-af43-3735cf97b933" xmi:type="uml:LiteralInteger"/>
                <name>lowerBound</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-upperBound"
                xmi:uuid="6b0f6333-b17c-4ba9-920d-e6020386958a" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-upperBound-ownedComment"
                    xmi:uuid="806c3a26-c017-4d68-976f-94d8d6a46c76" xmi:type="uml:Comment">
                    <body>The string image of the literal given to specify the upper bound of the multiplicity of the element being defined.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-upperBound"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-TypedElementDefinition-upperBound-defaultValue"
                    xmi:uuid="a1d1daa3-798b-4c3e-95f1-1470f986f360" xmi:type="uml:LiteralString">
                    <value>"1"</value>
                </defaultValue>
                <name>upperBound</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-isOrdered"
                xmi:uuid="e3ed677f-e1ab-49a0-bd14-80feeb6e9a82" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-isOrdered-ownedComment"
                    xmi:uuid="3e0e22f3-8b1e-4b3e-8b70-8ac9883f8f7f" xmi:type="uml:Comment">
                    <body>Whether the element being defined is ordered.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-isOrdered"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-TypedElementDefinition-isOrdered-defaultValue"
                    xmi:uuid="3cc37ee8-3e96-401a-b524-b82656078a1f" xmi:type="uml:LiteralBoolean"/>
                <name>isOrdered</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-isNonunique"
                xmi:uuid="31e1c3d1-ce23-4bd3-a4ec-41d249da5960" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-isNonunique-ownedComment"
                    xmi:uuid="49f2f5ef-0b07-41b3-839e-762ecb72103c" xmi:type="uml:Comment">
                    <body>Whether the element being defined is non-unique.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-isNonunique"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-TypedElementDefinition-isNonunique-defaultValue"
                    xmi:uuid="877ba641-7dbc-4dc6-8508-b97704c8a839" xmi:type="uml:LiteralBoolean"/>
                <name>isNonunique</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-typeName"
                xmi:uuid="d34c09cc-942f-44ee-ba27-f7e909e1e44c" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-TypedElementDefinition-typeName-ownedComment"
                    xmi:uuid="4ecd2d0a-1bf7-4e68-94aa-a56a998e5f84" xmi:type="uml:Comment">
                    <body>The name of the type of the element being defined.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-typeName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-TypedElementDefinition-typeName-lowerValue"
                    xmi:uuid="4b6b8db1-ed7f-4571-86c8-4bf8da6a0e9e" xmi:type="uml:LiteralInteger"/>
                <name>typeName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_typeName_typedElementDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-type"
                xmi:uuid="c02de97b-72c2-44ce-ae69-790b47715b61" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-TypedElementDefinition-type-lowerValue"
                    xmi:uuid="752d3264-7b5d-4ff4-9904-306383464381" xmi:type="uml:LiteralInteger"/>
                <name>type</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_type_typedElementDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-lower"
                xmi:uuid="513988b4-62b4-41ea-ad44-ca20696d0b92" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-lower-ownedComment"
                    xmi:uuid="ad5ae665-e778-4cb2-9321-5c1332ce7c5f" xmi:type="uml:Comment">
                    <body>The multiplicity lower bound of the element being defined.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-lower"/>
                </ownedComment>
                <name>lower</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TypedElementDefinition-upper"
                xmi:uuid="bd726cc1-c0a1-41a8-94c6-afb1df6cd1b1" xmi:type="uml:Property">
                <type
                    href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"/>
                <ownedComment xmi:id="Alf-TypedElementDefinition-upper-ownedComment"
                    xmi:uuid="2f98d24f-67bc-4e90-b103-27361ff3c178" xmi:type="uml:Comment">
                    <body>The multiplicity upper bound of the element being defined.
</body>
                    <annotatedElement xmi:idref="Alf-TypedElementDefinition-upper"/>
                </ownedComment>
                <name>upper</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <name>TypedElementDefinition</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-FormalParameter"
            xmi:uuid="ad68d390-4b86-40e3-8365-6c8fac0ac81c" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-FormalParameter-ownedComment"
                xmi:uuid="b78368fb-5aa7-4467-9aa6-9813fbc90650" xmi:type="uml:Comment">
                <body>A typed element definition for the formal parameter of an activity or operation.
</body>
                <annotatedElement xmi:idref="Alf-FormalParameter"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-FormalParameter-formalParameterAssignmentAfterBody"
                xmi:uuid="52144f72-61c4-45a2-b468-6109ad96d0f1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-FormalParameter"/>
                <specification
                    xmi:id="Alf-FormalParameter-formalParameterAssignmentAfterBody-specification"
                    xmi:uuid="15951855-cf35-4e77-b986-22e993855baf" xmi:type="uml:OpaqueExpression">
                    <body>If a formal parameter has direction "out" and a multiplicity lower bound greater than 0, and its owning activity or operation definition has an effective body, then there must be an assignment for the formal parameter after the effective body that has a multiplicity greater than 0.
</body>
                    <language>English</language>
                </specification>
                <name>formalParameterAssignmentAfterBody</name>
            </ownedRule>
            <generalization xmi:id="Alf-FormalParameter-generalization"
                xmi:uuid="da7f4687-79fd-4026-a0b6-fd0d3e5b75dc" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-TypedElementDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-FormalParameter-direction"
                xmi:uuid="f73b0acf-1a09-4f15-8e4f-8f278ee51377" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-FormalParameter-direction-ownedComment"
                    xmi:uuid="09bb1ac8-d933-4a98-84d7-da274bd5fc46" xmi:type="uml:Comment">
                    <body>An indication of the direction of the parameter being defined.
</body>
                    <annotatedElement xmi:idref="Alf-FormalParameter-direction"/>
                </ownedComment>
                <name>direction</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-FormalParameter-annotationAllowed"
                xmi:uuid="a3394f9b-c783-4a20-9e4b-44324d1672a9" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-FormalParameter-annotationAllowed-ownedComment"
                    xmi:uuid="e47e902e-c641-4b28-a945-1c45b45f6d79" xmi:type="uml:Comment">
                    <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Parameter.
</body>
                    <annotatedElement xmi:idref="Alf-FormalParameter-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-FormalParameter-annotationAllowed-annotation"
                    xmi:uuid="0ba21ed9-a057-4b48-a7a4-c348aa5988bb" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-FormalParameter-annotationAllowed-result"
                    xmi:uuid="80897468-ec38-49a3-a812-6a5ccef79154" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-FormalParameter-isSameKindAs"
                xmi:uuid="3d401d2a-e190-4131-8979-d7385ce0c466" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-FormalParameter-isSameKindAs-ownedComment"
                    xmi:uuid="4bacf4bf-ea5e-4f19-886c-040257df2ca5" xmi:type="uml:Comment">
                    <body>Return true if the given member is a FormalParameter.
</body>
                    <annotatedElement xmi:idref="Alf-FormalParameter-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-FormalParameter-isSameKindAs-member"
                    xmi:uuid="e50927b8-b493-45d2-8097-f5f27198712f" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-FormalParameter-isSameKindAs-member-ownedComment"
                        xmi:uuid="142cb614-295f-422c-ad30-b3b26a6918fb" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-FormalParameter-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-FormalParameter-isSameKindAs-result"
                    xmi:uuid="9a7b7401-cb09-4419-946e-df3b3e7d3dc2" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>FormalParameter</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-UnitDefinition" xmi:uuid="e4aa2399-e44f-4151-9c4f-f489af6b0663"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-UnitDefinition-ownedComment"
                xmi:uuid="a740b928-3849-4368-a17d-8559f48b6a1c" xmi:type="uml:Comment">
                <body>The definition of a namespace as an Alf unit.
</body>
                <annotatedElement xmi:idref="Alf-UnitDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionNamespaceDerivation"
                xmi:uuid="5379c2b0-e4b6-4a1c-b2a3-753b5a35baf4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnitDefinition"/>
                <specification
                    xmi:id="Alf-UnitDefinition-unitDefinitionNamespaceDerivation-specification"
                    xmi:uuid="301155da-7c15-4b5d-8182-25de9991af1a" xmi:type="uml:OpaqueExpression">
                    <body>If a unit definition has a declared namespace name, then the containing namespace for the unit is the referent for that name.
</body>
                    <language>English</language>
                </specification>
                <name>unitDefinitionNamespaceDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionNamespace"
                xmi:uuid="fa609743-084f-48af-b676-e050f6bdc6aa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnitDefinition"/>
                <specification xmi:id="Alf-UnitDefinition-unitDefinitionNamespace-specification"
                    xmi:uuid="ffb81a82-0fca-44ba-9ef6-452fd9ac9f65" xmi:type="uml:OpaqueExpression">
                    <body>The declared namespace name for a unit definition, if any, must resolve to a UML namespace of an Alf unit definition. If it is an Alf unit definition, then it must have a stub for this unit definition.
</body>
                    <language>English</language>
                </specification>
                <name>unitDefinitionNamespace</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation"
                xmi:uuid="8eb6f4a6-965e-4938-9285-9f9c28029840" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnitDefinition"/>
                <specification
                    xmi:id="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation-specification"
                    xmi:uuid="6f04006f-26f1-48eb-9227-6e168b889a3e" xmi:type="uml:OpaqueExpression">
                    <body>A unit definition is for a model library if its associated namespace definition has a stereotype annotation for the UML standard stereotype ModelLibrary.
</body>
                    <language>English</language>
                </specification>
                <name>unitDefinitionIsModelLibraryDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionImplicitImports"
                xmi:uuid="7250d8cf-c994-4003-8dcf-a366e60dee31" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnitDefinition"/>
                <specification
                    xmi:id="Alf-UnitDefinition-unitDefinitionImplicitImports-specification"
                    xmi:uuid="85b5c5bd-db2a-428f-b4d4-0326648da553" xmi:type="uml:OpaqueExpression">
                    <body>Unless the unit definition is a model library, it has private package import references for all the sub-packages of the Alf::Library package.
</body>
                    <language>English</language>
                </specification>
                <name>unitDefinitionImplicitImports</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation"
                xmi:uuid="e5c225a0-07e8-4b3d-b698-e172352282f9" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-UnitDefinition"/>
                <specification
                    xmi:id="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation-specification"
                    xmi:uuid="85bb2f0a-2ef9-4862-b322-d094e9543bc0" xmi:type="uml:OpaqueExpression">
                    <body>The profiles applied to a unit definition include any profiles applied to the containing namespace of the unit definition. If the unit definition is for a package, then the applied profiles for the unit definition also include the applied profiles for its associated package definition.
</body>
                    <language>English</language>
                </specification>
                <name>unitDefinitionAppliedProfileDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-UnitDefinition-generalization"
                xmi:uuid="7b084922-b213-41d0-a6e2-2c62b679450a" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-DocumentedElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-UnitDefinition-namespaceName"
                xmi:uuid="aef9cd89-20a6-4cf2-be0a-799f240c8b10" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-UnitDefinition-namespaceName-ownedComment"
                    xmi:uuid="3ff59e4a-cf06-45b9-b3d9-e6575320d809" xmi:type="uml:Comment">
                    <body>A declaration of the name of the namespace that contains this unit as a subunit.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-namespaceName"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-UnitDefinition-namespaceName-lowerValue"
                    xmi:uuid="3501361f-db06-457c-88f9-0d4b19d37d41" xmi:type="uml:LiteralInteger"/>
                <name>namespaceName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_namespaceName_unitDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnitDefinition-definition"
                xmi:uuid="d09a8124-ae25-483a-8cdf-13e142d373a9" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-UnitDefinition-definition-ownedComment"
                    xmi:uuid="2741ee20-73bb-4b08-b3b8-e6cbae17c405" xmi:type="uml:Comment">
                    <body>The definition of the unit as a namespace.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-definition"/>
                </ownedComment>
                <name>definition</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-NamespaceDefinition"/>
                <association xmi:idref="Alf-A_definition_unit"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnitDefinition-import"
                xmi:uuid="ea4aeeab-a613-4954-91b1-36b1e5d50c7b" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-UnitDefinition-import-ownedComment"
                    xmi:uuid="48638a1e-6b51-495b-ae3e-a23a3173b68a" xmi:type="uml:Comment">
                    <body>The set of references to imported elements or packages.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-import"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-UnitDefinition-import-lowerValue"
                    xmi:uuid="d9a3a20e-f2e4-415e-9578-7995c385b804" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-UnitDefinition-import-upperValue"
                    xmi:uuid="15581825-014c-40a3-88f6-c82cfb06c4f8"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>import</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-ImportReference"/>
                <association xmi:idref="Alf-A_import_unit"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnitDefinition-namespace"
                xmi:uuid="1144f94e-4c0a-4e55-a821-ac23b94553e0" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-UnitDefinition-namespace-ownedComment"
                    xmi:uuid="bbcd5b4e-4f16-4c79-91a0-093911ebca28" xmi:type="uml:Comment">
                    <body>A reference to the namespace denoted by the declared namespace name for the unit, if any.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-namespace"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-UnitDefinition-namespace-lowerValue"
                    xmi:uuid="4165ffd5-54f8-4e7f-9948-c0777420482b" xmi:type="uml:LiteralInteger"/>
                <name>namespace</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_namespace_unitDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnitDefinition-isModelLibrary"
                xmi:uuid="4005cbed-57a4-4254-84e2-e759c7a182f1" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-UnitDefinition-isModelLibrary-ownedComment"
                    xmi:uuid="8bd48a7f-72fb-4efe-a6d0-07498bb47973" xmi:type="uml:Comment">
                    <body>Whether this unit definition is for a model library or not.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-isModelLibrary"/>
                </ownedComment>
                <name>isModelLibrary</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-UnitDefinition-appliedProfile"
                xmi:uuid="ac44a917-3bc8-46d2-902d-a816f3f3eb59" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Profile"/>
                <ownedComment xmi:id="Alf-UnitDefinition-appliedProfile-ownedComment"
                    xmi:uuid="67de4469-4c1b-473b-ae4f-8cc2ec8ace80" xmi:type="uml:Comment">
                    <body>The profiles applied to this unit.
</body>
                    <annotatedElement xmi:idref="Alf-UnitDefinition-appliedProfile"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-UnitDefinition-appliedProfile-lowerValue"
                    xmi:uuid="455f114b-497c-476a-93f5-514a565685f0" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-UnitDefinition-appliedProfile-upperValue"
                    xmi:uuid="a4249c2b-72f5-4e9e-b7e8-aa482f825756"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>appliedProfile</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <association xmi:idref="Alf-A_appliedProfile_unitDefinition"/>
            </ownedAttribute>
            <name>UnitDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassDefinition"
            xmi:uuid="eeccc0c7-9fc9-4787-9f41-e500f01e839c" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassDefinition-ownedComment"
                xmi:uuid="966be737-350d-4be0-8722-af3b9d0128bb" xmi:type="uml:Comment">
                <body>The definition of a class, whose members may be properties, operations, signals or signal receptions.
</body>
                <annotatedElement xmi:idref="Alf-ClassDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ClassDefinition-classDefinitionSpecializationReferent"
                xmi:uuid="e65467dc-4577-4677-ae74-961e5bea5496" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassDefinition"/>
                <specification
                    xmi:id="Alf-ClassDefinition-classDefinitionSpecializationReferent-specification"
                    xmi:uuid="5ccf40ac-494f-4d39-a8d0-eab80b709a33" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of a class definition must all be classes. A class definition may not have any referents that are active classes unless this is an active class definition.
</body>
                    <language>English</language>
                </specification>
                <name>classDefinitionSpecializationReferent</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassDefinition-classDefinitionAbstractMember"
                xmi:uuid="f0507cfd-03d4-4815-8c4d-dabc98ca2225" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassDefinition"/>
                <specification
                    xmi:id="Alf-ClassDefinition-classDefinitionAbstractMember-specification"
                    xmi:uuid="de976ea3-d2b9-40ed-bc6e-1198a8540874" xmi:type="uml:OpaqueExpression">
                    <body>If a class definition is not abstract, then no member operations (owned or inherited) of the class definition may be abstract.
</body>
                    <language>English</language>
                </specification>
                <name>classDefinitionAbstractMember</name>
            </ownedRule>
            <generalization xmi:id="Alf-ClassDefinition-generalization"
                xmi:uuid="d061a79b-1e34-4fbf-aa4c-e8b811866f2f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-ClassDefinition-annotationAllowed"
                xmi:uuid="6619d7a9-f2f3-43e9-844b-7802360555bc" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-ClassDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="bd18758e-fc1c-4acb-a5cc-af4af2a6c7fc" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, a class definition allows an annotation for any stereotype whose metaclass is consistent with Class.
</body>
                    <annotatedElement xmi:idref="Alf-ClassDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassDefinition-annotationAllowed-annotation"
                    xmi:uuid="c0681c2b-0588-4089-af93-afc33e27913e" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassDefinition-annotationAllowed-result"
                    xmi:uuid="23d9fbcf-96a1-42f0-9407-29b16a6381dc" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ClassDefinition-matchForStub"
                xmi:uuid="df507812-df79-499b-bcb9-dede4cbf42b5" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-ClassDefinition-matchForStub-ownedComment"
                    xmi:uuid="60578914-a388-4b52-b73d-5f943fd96bcc" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this class definition considered as a classifier definition and the subunit is for a class definition.
</body>
                    <annotatedElement xmi:idref="Alf-ClassDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassDefinition-matchForStub-unit"
                    xmi:uuid="2c266b76-6609-4398-aa4a-f785dc38a199" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassDefinition-matchForStub-result"
                    xmi:uuid="491be043-94ea-4110-8f35-45328a00a197" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ClassDefinition-isSameKindAs"
                xmi:uuid="771c93d6-b690-4e20-902d-329db21b1e58" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-ClassDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="b033b53b-bfe4-4f32-bd21-d817a40fb0a4" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a ClassDefinition or an imported member whose referent is a ClassDefinition or a Class.
</body>
                    <annotatedElement xmi:idref="Alf-ClassDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassDefinition-isSameKindAs-member"
                    xmi:uuid="0c2b5279-9038-47b0-ad2b-27bc14d0ef2e" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-ClassDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="7bc61036-9b53-44d1-95e3-c23d21ce439a" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-ClassDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassDefinition-isSameKindAs-result"
                    xmi:uuid="737fdf86-6615-44d7-bbc4-c3e8f6fb63a1" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ClassDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-NamespaceDefinition"
            xmi:uuid="9014e7ff-dfba-40f4-8711-242190ae6fe9" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-NamespaceDefinition-ownedComment"
                xmi:uuid="e0517ab8-7bea-445c-8066-e5b06c2f633a" xmi:type="uml:Comment">
                <body>A model of the common properties of the definition of a namespace in Alf.
</body>
                <annotatedElement xmi:idref="Alf-NamespaceDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation"
                xmi:uuid="8531f0ce-abb7-4b28-9fe9-151e08ff5efa" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamespaceDefinition"/>
                <specification
                    xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation-specification"
                    xmi:uuid="be00185d-2dda-472b-a9db-505461e8405e" xmi:type="uml:OpaqueExpression">
                    <body>The members of a namespace definition include references to all  owned members. Also, if the namespace definition has a unit with imports, then the members include imported members with referents to all imported elements. The imported elements and their visibility are determined as given in the UML Superstructure. The name of an imported member is the name of the imported element or its alias, if one has been given for it. Elements that would be indistinguishable from each other or from an owned member  (as determined by the Member::isDistinguishableFrom operation) are not imported.
</body>
                    <language>English</language>
                </specification>
                <name>namespaceDefinitionMemberDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability"
                xmi:uuid="9e8060d5-592a-48af-8930-783cf128d9fd" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-NamespaceDefinition"/>
                <specification
                    xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability-specification"
                    xmi:uuid="8db417b8-1ec5-4a58-ae0f-ab051535cf23" xmi:type="uml:OpaqueExpression">
                    <body>The members of a namespace must be distinguishable as determined by the Member::isDistinguishableFrom operation.
</body>
                    <language>English</language>
                </specification>
                <name>namespaceDefinitionMemberDistinguishability</name>
            </ownedRule>
            <generalization xmi:id="Alf-NamespaceDefinition-generalization"
                xmi:uuid="e0239db2-2a33-4a89-a8ea-8204b731b4c6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Member"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-NamespaceDefinition-ownedMember"
                xmi:uuid="b37cb664-8194-4a9a-b471-af25629798dc" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamespaceDefinition-ownedMember-ownedComment"
                    xmi:uuid="64305b30-e209-45f0-9c15-572b0cddfdb7" xmi:type="uml:Comment">
                    <body>The definitions of owned members of the namespace.
</body>
                    <annotatedElement xmi:idref="Alf-NamespaceDefinition-ownedMember"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NamespaceDefinition-ownedMember-lowerValue"
                    xmi:uuid="9b752def-d72c-4d32-90e0-58495d91446f" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-NamespaceDefinition-ownedMember-upperValue"
                    xmi:uuid="64f1be03-7b6c-4aea-92c8-a38c562b1337"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>ownedMember</name>
                <visibility>public</visibility>
                <isOrdered>true</isOrdered>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Member"/>
                <association xmi:idref="Alf-A_ownedMember_namespace"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamespaceDefinition-unit"
                xmi:uuid="a4d833e8-a1db-4416-8434-d0efe4281d8e" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamespaceDefinition-unit-ownedComment"
                    xmi:uuid="6f514aae-1ab5-4420-a172-afe7f2b0a6ca" xmi:type="uml:Comment">
                    <body>The unit for which this namespace is a definition, if any.
</body>
                    <annotatedElement xmi:idref="Alf-NamespaceDefinition-unit"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NamespaceDefinition-unit-lowerValue"
                    xmi:uuid="3fcf518d-8b74-48be-9bea-9c64339dce12" xmi:type="uml:LiteralInteger"/>
                <name>unit</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_definition_unit"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-NamespaceDefinition-member"
                xmi:uuid="5dfa6afb-6523-426a-836c-90db5b95d515" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-NamespaceDefinition-member-ownedComment"
                    xmi:uuid="866b1fe4-07f3-4991-8879-8e015f7748a2" xmi:type="uml:Comment">
                    <body>The owned and imported members of a namespace definition.
</body>
                    <annotatedElement xmi:idref="Alf-NamespaceDefinition-member"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-NamespaceDefinition-member-lowerValue"
                    xmi:uuid="47fbd213-d8b3-43ff-8e9b-228b705ba661" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-NamespaceDefinition-member-upperValue"
                    xmi:uuid="da8bcfdf-765f-4081-9e74-bcd26ea8ac41"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>member</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Member"/>
                <association xmi:idref="Alf-A_member_namespaceDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-NamespaceDefinition-annotationAllowed"
                xmi:uuid="514e7127-9050-485c-b8c9-a4781d846849" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-NamespaceDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="252ff1c3-64d7-47a9-b7c9-ba49782f46ef" xmi:type="uml:Comment">
                    <body>Returns true if the annotation is @external.
</body>
                    <annotatedElement xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-NamespaceDefinition-annotationAllowed-annotation"
                    xmi:uuid="edcb98b1-789b-455f-a450-8cc7045206d2" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-NamespaceDefinition-annotationAllowed-result"
                    xmi:uuid="6fd3d60b-b2cc-4a25-b279-b79a7b71444b" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>NamespaceDefinition</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassifierDefinition"
            xmi:uuid="0e0c5586-abee-45ec-bc72-549eee04acc0" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassifierDefinition-ownedComment"
                xmi:uuid="e8e68452-eb95-4c49-a8da-407ef939b9f0" xmi:type="uml:Comment">
                <body>The definition of a classifier.
</body>
                <annotatedElement xmi:idref="Alf-ClassifierDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecialization"
                xmi:uuid="73f4d1f5-2720-4972-a3e4-cd0166ad2ca2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifierDefinition"/>
                <specification
                    xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecialization-specification"
                    xmi:uuid="60ce3b11-8b03-48e9-95d6-98ab4fb4b032" xmi:type="uml:OpaqueExpression">
                    <body>Each name listed in the specialization list for a classifier definition must have a single classifier referent. None of these referents may be templates.
</body>
                    <language>English</language>
                </specification>
                <name>classifierDefinitionSpecialization</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation"
                xmi:uuid="8f9b5d21-001c-4dd0-a536-3e56d20b0b0f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifierDefinition"/>
                <specification
                    xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation-specification"
                    xmi:uuid="25c646bf-41d1-4d4f-86af-589db1b10033" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of a classifier definition are the classifiers denoted by the names in the specialization list for the classifier definition.
</body>
                    <language>English</language>
                </specification>
                <name>classifierDefinitionSpecializationReferentDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers"
                xmi:uuid="1f24ecef-df69-4011-89eb-241854e295d5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ClassifierDefinition"/>
                <specification
                    xmi:id="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers-specification"
                    xmi:uuid="a673a79d-4bfd-42c4-a1d0-60c3e5c099ac" xmi:type="uml:OpaqueExpression">
                    <body>The members of a classifier definition include non-private members inherited from the classifiers it specializes. The visibility of inherited members is as specified in the UML Superstructure, Subclause 7.3.8. Elements inherited from external classifiers are treated as imported members.
</body>
                    <language>English</language>
                </specification>
                <name>classifierDefinitionInheritedMembers</name>
            </ownedRule>
            <generalization xmi:id="Alf-ClassifierDefinition-generalization"
                xmi:uuid="cea9e83a-1020-447e-b9c3-9bcc2034aaf0" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-NamespaceDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ClassifierDefinition-isAbstract"
                xmi:uuid="e530cd18-f391-48c3-a231-e0f333707abd" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-ClassifierDefinition-isAbstract-ownedComment"
                    xmi:uuid="84263b41-02d2-47de-8dff-166b3060f60a" xmi:type="uml:Comment">
                    <body>Whether the classifier is abstract or not.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierDefinition-isAbstract"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-ClassifierDefinition-isAbstract-defaultValue"
                    xmi:uuid="cfc91f3d-3d54-4bcc-8be0-ed7c24b891a4" xmi:type="uml:LiteralBoolean"/>
                <name>isAbstract</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifierDefinition-specialization"
                xmi:uuid="13e97aea-c745-415e-b79b-7f957061ba95" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifierDefinition-specialization-ownedComment"
                    xmi:uuid="16a4379e-ac56-4a59-ac76-ecc4bc479f98" xmi:type="uml:Comment">
                    <body>The names of classifiers specialized by the classifier being defined.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierDefinition-specialization"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifierDefinition-specialization-lowerValue"
                    xmi:uuid="39772a19-6e41-48e6-9dcd-65591c0f9956" xmi:type="uml:LiteralInteger"/>
                <name>specialization</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_specialization_classifierDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ClassifierDefinition-specializationReferent"
                xmi:uuid="fc133919-7cfe-4496-a9b5-58facbea3f8c" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ClassifierDefinition-specializationReferent-ownedComment"
                    xmi:uuid="35610d17-52c9-4361-8e32-c9fa2dc02d69" xmi:type="uml:Comment">
                    <body>References to the classifiers to which the names in the specialization list resolve.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierDefinition-specializationReferent"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ClassifierDefinition-specializationReferent-lowerValue"
                    xmi:uuid="d950ef12-734d-4f06-9a3b-fabd8a13a216" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-ClassifierDefinition-specializationReferent-upperValue"
                    xmi:uuid="022d1f6a-5c8e-4669-9a5a-622aeec1f3b0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>specializationReferent</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_specializationReferent_classifierDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ClassifierDefinition-matchForStub"
                xmi:uuid="d706510a-c372-4e1b-b00b-9a3d41250585" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
                <ownedComment xmi:id="Alf-ClassifierDefinition-matchForStub-ownedComment"
                    xmi:uuid="5f847fc0-484c-4df0-a888-5c8fb67937be" xmi:type="uml:Comment">
                    <body>The namespace definition associated with the given unit definition must be a classifier definition. The subunit classifier definition may be abstract if and only if the subunit classifier definition is abstract. The subunit classifier definition must have the same specialization referents as the stub classifier definition. (Note that it is the referents that must match, not the exact names or the ordering of those names in the specialization list.) The subunit classifier definition must also have a matching classifier template parameter for each classifier template parameter of the stub classifier definition. Two template parameters match if they have same names and the same specialization referents.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassifierDefinition-matchForStub-unit"
                    xmi:uuid="c4ce0cfc-59be-4628-b50b-91e8c6134487" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassifierDefinition-matchForStub-result"
                    xmi:uuid="9139deb2-a4a7-49bc-a3bc-78ba7418588e" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ClassifierDefinition</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-SignalDefinition"
            xmi:uuid="b18393d9-51b9-4077-9938-6d27adac9669" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-SignalDefinition-ownedComment"
                xmi:uuid="9966a547-878a-4b98-b43b-2c9a6ef6b64f" xmi:type="uml:Comment">
                <body>The definition of a signal, whose members must all be properties.
</body>
                <annotatedElement xmi:idref="Alf-SignalDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-SignalDefinition-signalDefinitionSpecializationReferent"
                xmi:uuid="94a71063-0e9e-4276-94e1-4074fd3ff9ea" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-SignalDefinition"/>
                <specification
                    xmi:id="Alf-SignalDefinition-signalDefinitionSpecializationReferent-specification"
                    xmi:uuid="0649dab8-85f2-4e2d-8a76-eeac6636f572" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of a signal definition must all be signals.</body>
                    <language>English</language>
                </specification>
                <name>signalDefinitionSpecializationReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-SignalDefinition-generalization"
                xmi:uuid="aec8bc67-3caa-4731-a7b7-a681faf3d059" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-SignalDefinition-matchForStub"
                xmi:uuid="2835eb15-2420-417a-a578-ba67b2b503c7" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-SignalDefinition-matchForStub-ownedComment"
                    xmi:uuid="b201f8f3-c020-4430-83c6-78d8171ca3e1" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this signal definition considered as a classifier definition and the subunit is for a signal definition.
</body>
                    <annotatedElement xmi:idref="Alf-SignalDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SignalDefinition-matchForStub-unit"
                    xmi:uuid="8d0660ba-65bf-46a4-9f33-f2f7029da0d2" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SignalDefinition-matchForStub-result"
                    xmi:uuid="f61845d2-2dc2-45b3-b167-9ce97e7610e0" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SignalDefinition-annotationAllowed"
                xmi:uuid="8bd462b8-e4a3-4e58-b723-681bd328e68a" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-SignalDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="bd611bde-7b4a-4848-81a2-be6dce237afd" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, a signal definition allows an annotation for any stereotype whose metaclass is consistent with Signal.
</body>
                    <annotatedElement xmi:idref="Alf-SignalDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SignalDefinition-annotationAllowed-annotation"
                    xmi:uuid="01f2230d-f6e9-4f09-a5e4-b708bc507496" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SignalDefinition-annotationAllowed-result"
                    xmi:uuid="38ac295f-a6e3-4c13-8c51-ececc1cc1788" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-SignalDefinition-isSameKindAs"
                xmi:uuid="308e0f81-4def-4be7-b9db-935c7e41ac9b" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-SignalDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="eecd4318-0688-49c1-ab6e-39333057ab13" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a SignalDefinition or an imported member whose referent is a SignalDefinition or a Signal (where signal reception definitions are considered to be kinds of signal definitions).
</body>
                    <annotatedElement xmi:idref="Alf-SignalDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-SignalDefinition-isSameKindAs-member"
                    xmi:uuid="891f314f-4e32-4c52-8132-a50c1734ff14" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-SignalDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="78e6956d-2d8f-4fff-a8cf-7a6c11f9f82d" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-SignalDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-SignalDefinition-isSameKindAs-result"
                    xmi:uuid="f3011a8d-b21b-42cc-a90b-5925fa9d9b23" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>SignalDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-Member" xmi:uuid="a5cc6d97-d670-46e4-85e5-812eb8949a17"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-Member-ownedComment"
                xmi:uuid="a0210cbf-fccb-4baa-a533-71d37ce684a5" xmi:type="uml:Comment">
                <body>A model of the common properties of the definition of a member of a namespace in Alf.
</body>
                <annotatedElement xmi:idref="Alf-Member"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-Member-memberAnnotations"
                xmi:uuid="b1468cd5-99ff-4077-9ba3-98d77c5e14cb" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberAnnotations-specification"
                    xmi:uuid="e02a68d5-5b4e-4022-ab0c-d219ec9145a7" xmi:type="uml:OpaqueExpression">
                    <body>All stereotype annotations for a member must be allowed, as determined using the stereotypeAllowed operation.
</body>
                    <language>English</language>
                </specification>
                <name>memberAnnotations</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberIsPrimitiveDerivation"
                xmi:uuid="1c98fdb3-40b0-4c3b-a0cf-04aecc9e44b5" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberIsPrimitiveDerivation-specification"
                    xmi:uuid="db48eaf4-feda-40d7-a03f-3950884b79b3" xmi:type="uml:OpaqueExpression">
                    <body>A member is primitive if it has a @primitive annotation.
</body>
                    <language>English</language>
                </specification>
                <name>memberIsPrimitiveDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberIsExternalDerivation"
                xmi:uuid="787ecc9f-d685-4980-bc87-e68c9bf181a8" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberIsExternalDerivation-specification"
                    xmi:uuid="d91c40df-5c1f-468b-a6ab-7c3f62cc6bce" xmi:type="uml:OpaqueExpression">
                    <body>A member is external if it has an @external derivation.
</body>
                    <language>English</language>
                </specification>
                <name>memberIsExternalDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberExternal"
                xmi:uuid="63accc48-30dc-4365-b364-80ac547c2f50" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberExternal-specification"
                    xmi:uuid="c28d7bd9-f7fb-443b-8d8e-772ea6c551f6" xmi:type="uml:OpaqueExpression">
                    <body>If a member is external then it must be a stub.
</body>
                    <language>English</language>
                </specification>
                <name>memberExternal</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberStub"
                xmi:uuid="59abee61-eb6f-4aff-aa34-10e739909273" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberStub-specification"
                    xmi:uuid="9088112b-069a-4471-a2bc-81fc016ad600" xmi:type="uml:OpaqueExpression">
                    <body>If a member is a stub and is not external, then there must be a single subunit with the same qualified name as the stub that matches the stub, as determined by the matchForStub operation.
</body>
                    <language>English</language>
                </specification>
                <name>memberStub</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberSubunitDerivation"
                xmi:uuid="f2c230d3-082e-4db8-b201-be1fd31b1602" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberSubunitDerivation-specification"
                    xmi:uuid="ff780e0e-19ed-459e-9289-98eb7bc1ae69" xmi:type="uml:OpaqueExpression">
                    <body>If the member is a stub and is not external, then its corresponding subunit is a unit definition with the same fully qualified name as the stub.
</body>
                    <language>English</language>
                </specification>
                <name>memberSubunitDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberStubStereotypes"
                xmi:uuid="98cb3c13-a573-42e0-82ab-32e095a76543" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberStubStereotypes-specification"
                    xmi:uuid="995494d4-d6f8-4bb0-9b04-6f6e60b24c5d" xmi:type="uml:OpaqueExpression">
                    <body>If a member is a stub, then the it must not have any stereotype annotations that are the same as its subunit. Two stereotype annotations are the same if they are for the same stereotype.
</body>
                    <language>English</language>
                </specification>
                <name>memberStubStereotypes</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-Member-memberPrimitive"
                xmi:uuid="4bfbe546-d0c8-4fda-83ff-70776b74e01b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-Member"/>
                <specification xmi:id="Alf-Member-memberPrimitive-specification"
                    xmi:uuid="79951557-1302-4cb1-beb2-35093255ffee" xmi:type="uml:OpaqueExpression">
                    <body>If a member is primitive, then it may not be a stub and it may not have any owned members that are template parameters.
</body>
                    <language>English</language>
                </specification>
                <name>memberPrimitive</name>
            </ownedRule>
            <generalization xmi:id="Alf-Member-generalization"
                xmi:uuid="5d9504df-65e5-4f67-8adf-83a381be7f9e" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-DocumentedElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-Member-name" xmi:uuid="656016ea-f247-4135-9a30-a27426c2f81f"
                xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-Member-name-ownedComment"
                    xmi:uuid="49b09148-f448-413f-9779-a78d0509c7cd" xmi:type="uml:Comment">
                    <body>The name of the member.
</body>
                    <annotatedElement xmi:idref="Alf-Member-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-visibility"
                xmi:uuid="228b871b-e41a-45ce-8592-dbc261c742ca" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-Member-visibility-ownedComment"
                    xmi:uuid="28712d81-4304-4f81-84b4-0db71ccf62e6" xmi:type="uml:Comment">
                    <body>An indication of the visibility of the member outside of its namespace.
</body>
                    <annotatedElement xmi:idref="Alf-Member-visibility"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Member-visibility-lowerValue"
                    xmi:uuid="85a305bf-f52c-4059-b1a2-79660e600473" xmi:type="uml:LiteralInteger"/>
                <name>visibility</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-isStub"
                xmi:uuid="839d2681-f05b-4761-981c-3f7984c68f74" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Member-isStub-ownedComment"
                    xmi:uuid="316fd90e-683c-4d47-b160-514f6e6d08c4" xmi:type="uml:Comment">
                    <body>Whether this member definition is a stub for a subunit.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isStub"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-Member-isStub-defaultValue"
                    xmi:uuid="ee2f3e52-b2d6-4882-8a5a-4f7a7959732f" xmi:type="uml:LiteralBoolean"/>
                <name>isStub</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-namespace"
                xmi:uuid="503782c8-f583-43a2-a152-b7ca667cbee9" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Member-namespace-ownedComment"
                    xmi:uuid="6b368555-1c17-4c8a-a459-84e9726c1661" xmi:type="uml:Comment">
                    <body>The namespace definition within which this member definition is nested, if any. (The namespace definitions for units are not physically nested within another Alf namespace definition.)
</body>
                    <annotatedElement xmi:idref="Alf-Member-namespace"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Member-namespace-lowerValue"
                    xmi:uuid="53dad6d3-5bf5-4554-8fc6-13bc5c9ced9a" xmi:type="uml:LiteralInteger"/>
                <name>namespace</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamespaceDefinition"/>
                <association xmi:idref="Alf-A_ownedMember_namespace"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-annotation"
                xmi:uuid="bd405180-a264-4078-a6cf-3a627f090a3d" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Member-annotation-ownedComment"
                    xmi:uuid="ec595104-1746-47af-ad1f-5b831671c9fb" xmi:type="uml:Comment">
                    <body>The stereotype annotations on this member definition.
</body>
                    <annotatedElement xmi:idref="Alf-Member-annotation"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Member-annotation-lowerValue"
                    xmi:uuid="bdb85aa3-fbc1-4b2a-b474-8ff9bcf364b9" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-Member-annotation-upperValue"
                    xmi:uuid="c8cd60ff-0ae6-4fb6-b639-9e61fb47a54b"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>annotation</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-StereotypeAnnotation"/>
                <association xmi:idref="Alf-A_annotation_member"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-isFeature"
                xmi:uuid="54c64a8c-6428-48cd-9f37-f94fd6f62688" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Member-isFeature-ownedComment"
                    xmi:uuid="a984c008-fde7-466f-8c45-98d2d084054a" xmi:type="uml:Comment">
                    <body>Whether this member is a feature of a classifier.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isFeature"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-Member-isFeature-defaultValue"
                    xmi:uuid="a1c9e020-9cd0-446e-ae18-68785d70702c" xmi:type="uml:LiteralBoolean"/>
                <name>isFeature</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-isPrimitive"
                xmi:uuid="d915ee64-aa09-4965-8076-cb40dc5820d1" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Member-isPrimitive-ownedComment"
                    xmi:uuid="59b67859-7bdf-450f-b581-da6b8455c16b" xmi:type="uml:Comment">
                    <body>Whether this member is a primitive or not.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isPrimitive"/>
                </ownedComment>
                <name>isPrimitive</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-isExternal"
                xmi:uuid="911382e1-6fe0-49f0-9b0a-edaa39f8f3ec" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-Member-isExternal-ownedComment"
                    xmi:uuid="36522015-a88f-4114-a0fb-8b7fa92381c9" xmi:type="uml:Comment">
                    <body>Whether this member is external or not.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isExternal"/>
                </ownedComment>
                <name>isExternal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-Member-subunit"
                xmi:uuid="a33dc351-ba80-40ac-94ff-acb0e68bc4f3" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-Member-subunit-ownedComment"
                    xmi:uuid="7a154d62-dcf2-4f3d-a7bb-b233a85993f5" xmi:type="uml:Comment">
                    <body>The subunit corresponding to the member, if the member is a stub.
</body>
                    <annotatedElement xmi:idref="Alf-Member-subunit"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-Member-subunit-lowerValue"
                    xmi:uuid="42841082-66fe-4ef0-9d37-fdd7eb9caeed" xmi:type="uml:LiteralInteger"/>
                <name>subunit</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_subunit_member"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-Member-annotationAllowed"
                xmi:uuid="346daba2-b9ff-44c5-9a9b-b43113c58dc7" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Member-annotationAllowed-ownedComment"
                    xmi:uuid="4a77284b-2932-4265-be0a-de2f18097700" xmi:type="uml:Comment">
                    <body>Returns true of the given stereotype annotation is allowed for this kind of element.

</body>
                    <annotatedElement xmi:idref="Alf-Member-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Member-annotationAllowed-annotation"
                    xmi:uuid="76a634bd-8298-48aa-96ca-0d8b96cde60b" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Member-annotationAllowed-result"
                    xmi:uuid="fe532815-4806-4811-a33d-eb62e88da8d1" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
                <isAbstract>true</isAbstract>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Member-matchForStub"
                xmi:uuid="38fc7c72-942a-4148-bc02-924488c59247" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Member-matchForStub-ownedComment"
                    xmi:uuid="b0afedf9-08b7-4a0a-aed7-b47a752c131e" xmi:type="uml:Comment">
                    <body>Returns true of the given unit definition is a legal match for this member as a stub. By default, always returns false.
</body>
                    <annotatedElement xmi:idref="Alf-Member-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Member-matchForStub-unit"
                    xmi:uuid="562e77e1-7adf-43ec-82cc-e8a21623d801" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Member-matchForStub-result"
                    xmi:uuid="5f8ff4ce-4c19-4782-80b9-322e070a8400" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Member-isDistinguishableFrom"
                xmi:uuid="622a6d8b-d76a-419d-b1f5-3ba0e1bd5037" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Member-isDistinguishableFrom-ownedComment"
                    xmi:uuid="deb7d1f6-bb8d-4f1e-bdae-46837d46fbb6" xmi:type="uml:Comment">
                    <body>Returns true if this member is distinguishable from the given member. Two members are distinguishable if their names are different or the they are of different kinds (as determined by the isSameKindAs operation). However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isDistinguishableFrom"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Member-isDistinguishableFrom-member"
                    xmi:uuid="5531193d-810a-4f1d-a464-984c8fc8772c" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-Member-isDistinguishableFrom-member-ownedComment"
                        xmi:uuid="814f57aa-18a7-471a-b428-a3e0a750e34d" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-Member-isDistinguishableFrom-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Member-isDistinguishableFrom-result"
                    xmi:uuid="783b93c1-3664-41c0-bf58-6997d7b60935" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isDistinguishableFrom</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-Member-isSameKindAs"
                xmi:uuid="497926f7-729b-475f-a5fe-14a0db081fe5" xmi:type="uml:Operation">
                <ownedComment xmi:id="Alf-Member-isSameKindAs-ownedComment"
                    xmi:uuid="cc711663-713c-4f23-8728-c084797839e0" xmi:type="uml:Comment">
                    <body>Returns true if this member is of the same kind as the given member.
</body>
                    <annotatedElement xmi:idref="Alf-Member-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-Member-isSameKindAs-member"
                    xmi:uuid="241c7cab-37fd-41a2-8ebc-bdf15a042098" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-Member-isSameKindAs-member-ownedComment"
                        xmi:uuid="d9780d40-53eb-47bc-aa4e-60a4e300438b" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-Member-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-Member-isSameKindAs-result"
                    xmi:uuid="7ce4906d-e6e9-4dec-9d58-e5d03fcb0765" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
                <isAbstract>true</isAbstract>
            </ownedOperation>
            <name>Member</name>
            <isAbstract>true</isAbstract>
        </packagedElement>
        <packagedElement xmi:id="Alf-ReceptionDefinition"
            xmi:uuid="95b487ac-77b3-4ec6-8a29-a6a998415a3f" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ReceptionDefinition-ownedComment"
                xmi:uuid="784021ce-3baf-40d0-a5bc-c51514dde697" xmi:type="uml:Comment">
                <body>The declaration of the ability of an active class to receive a signal.
</body>
                <annotatedElement xmi:idref="Alf-ReceptionDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalName"
                xmi:uuid="d3e67780-5939-4e21-b039-af2c287e3a12" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReceptionDefinition"/>
                <specification
                    xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalName-specification"
                    xmi:uuid="6d2ec356-ff23-4e8a-85aa-30eb88d7dd65" xmi:type="uml:OpaqueExpression">
                    <body>The signal name for a reception definition must have a single referent that is a signal. This referent must not e a template.
</body>
                    <language>English</language>
                </specification>
                <name>receptionDefinitionSignalName</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation"
                xmi:uuid="d1f16e2a-5778-4830-9a8f-528b570cb197" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReceptionDefinition"/>
                <specification
                    xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation-specification"
                    xmi:uuid="099c5666-6136-46db-b1b3-f238c2239b57" xmi:type="uml:OpaqueExpression">
                    <body>The signal for a reception definition is the signal referent of the signal name for the reception definition.
</body>
                    <language>English</language>
                </specification>
                <name>receptionDefinitionSignalDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation"
                xmi:uuid="8d2b5657-30ce-4737-bdcc-805af5ae328b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ReceptionDefinition"/>
                <specification
                    xmi:id="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation-specification"
                    xmi:uuid="21139da9-f917-413a-b528-cfda5ab188a4" xmi:type="uml:OpaqueExpression">
                    <body>A reception definition is a feature.
</body>
                    <language>English</language>
                </specification>
                <name>receptionDefinitionIsFeatureDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-ReceptionDefinition-generalization"
                xmi:uuid="25225dd6-ca6c-47c9-b6e6-7cfaaddec7bd" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Member"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ReceptionDefinition-signalName"
                xmi:uuid="086fc585-9bab-449d-ace9-d575f3056abc" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ReceptionDefinition-signalName-ownedComment"
                    xmi:uuid="b2157661-258a-49dc-9571-ccc8120eea93" xmi:type="uml:Comment">
                    <body>The name of the signal to be received.
</body>
                    <annotatedElement xmi:idref="Alf-ReceptionDefinition-signalName"/>
                </ownedComment>
                <name>signalName</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedName"/>
                <association xmi:idref="Alf-A_receptionDefinition_signalName"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ReceptionDefinition-signal"
                xmi:uuid="9fb6b5b8-7125-4dd6-b577-2e5478c8f61a" xmi:type="uml:Property">
                <name>signal</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_signal_receptionDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ReceptionDefinition-annotationAllowed"
                xmi:uuid="3bbfd375-5bf0-4974-973e-a082cfe4d365" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-ReceptionDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="bd9b769e-f3e2-47e5-8a53-d9b4bdb1bac5" xmi:type="uml:Comment">
                    <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Reception.
</body>
                    <annotatedElement xmi:idref="Alf-ReceptionDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ReceptionDefinition-annotationAllowed-annotation"
                    xmi:uuid="cf84532c-925a-4576-ad0b-a3ed4ae003e9" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ReceptionDefinition-annotationAllowed-result"
                    xmi:uuid="fe5dd891-6e26-45b8-b63f-293ee938472f" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ReceptionDefinition-isSameKindAs"
                xmi:uuid="368ef54c-44c2-494c-b82d-9afea912ac58" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-ReceptionDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="a75498eb-e45b-42ca-aa05-236ed7381b75" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a ReceptionDefinition, a SignalReceptionDefinition or an imported member whose referent is a ReceptionDefinition, a SignalReceptionDefinition or a Reception.
</body>
                    <annotatedElement xmi:idref="Alf-ReceptionDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ReceptionDefinition-isSameKindAs-member"
                    xmi:uuid="8a56d250-c8b6-4f96-adb8-24b5430aa435" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-ReceptionDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="1d24d723-b1c1-4af8-a996-1b0f74ed3cd2" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-ReceptionDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ReceptionDefinition-isSameKindAs-result"
                    xmi:uuid="4a56c127-f325-4da7-b5fc-95259546ef14" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ReceptionDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ImportedMember" xmi:uuid="14339911-65ef-47c0-80e7-1da57bc9c334"
            xmi:type="uml:Class">
            <ownedRule xmi:id="Alf-ImportedMember-importedMemberNotStub"
                xmi:uuid="95071101-a6d1-43b7-8b17-a8e211256a40" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ImportedMember"/>
                <specification xmi:id="Alf-ImportedMember-importedMemberNotStub-specification"
                    xmi:uuid="6c71c9aa-4fdb-4229-ba17-7df8326cc0e3" xmi:type="uml:OpaqueExpression">
                    <body>An imported element is not a stub.
</body>
                    <language>English</language>
                </specification>
                <name>importedMemberNotStub</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ImportedMember-importedMemberIsFeatureDerivation"
                xmi:uuid="014f8d22-8816-4ae3-844c-d69546898799" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ImportedMember"/>
                <specification
                    xmi:id="Alf-ImportedMember-importedMemberIsFeatureDerivation-specification"
                    xmi:uuid="6b69fa81-98da-4889-8fd4-fd7c708482d5" xmi:type="uml:OpaqueExpression">
                    <body>An imported element is a feature if its referent is a feature.
</body>
                    <language>English</language>
                </specification>
                <name>importedMemberIsFeatureDerivation</name>
            </ownedRule>
            <generalization xmi:id="Alf-ImportedMember-generalization"
                xmi:uuid="f82e7f63-61ee-49a7-9cda-fb108f3a126b" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-Member"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ImportedMember-referent"
                xmi:uuid="8d4aa7f5-ef8b-442a-a035-21be64d26c94" xmi:type="uml:Property">
                <name>referent</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_referent_importedMember"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ImportedMember-annotationAllowed"
                xmi:uuid="5cdf6418-a849-4d92-8d05-7dee9f9d73e0" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-ImportedMember-annotationAllowed-ownedComment"
                    xmi:uuid="07bfe135-0b3c-4495-8de8-ca10417f4846" xmi:type="uml:Comment">
                    <body>Returns false. (Imported members do not have annotations.)
</body>
                    <annotatedElement xmi:idref="Alf-ImportedMember-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ImportedMember-annotationAllowed-annotation"
                    xmi:uuid="728e0fb4-bf65-4d47-b90a-d52945a5b05e" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ImportedMember-annotationAllowed-result"
                    xmi:uuid="82bcedb7-00d7-4246-8b7d-e61075c83089" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ImportedMember-isSameKindAs"
                xmi:uuid="65c5db84-d9eb-4959-a1f8-8ffe44d2ecad" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-ImportedMember-isSameKindAs-ownedComment"
                    xmi:uuid="4f4c9376-133b-495d-b680-b3d7ae09ff70" xmi:type="uml:Comment">
                    <body>If the given member is not an imported member, then return the result of checking whether the given member is the same kind as this member. Else, if the element of the referent for this member is an Alf member, then return the result of checking whether that element is the same kind as the given member. Else, if the element of the referent for the given member is an Alf member, then return the result of checking whether that element is the same kind as this member. Else, the referents for both this and the given member are UML elements, so return the result of checking their distinguishability according to the rules of the UML superstructure.
</body>
                    <annotatedElement xmi:idref="Alf-ImportedMember-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ImportedMember-isSameKindAs-member"
                    xmi:uuid="3b4fbdca-3962-4308-a079-75af274369c7" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-ImportedMember-isSameKindAs-member-ownedComment"
                        xmi:uuid="cb21a2be-4fe4-4103-b073-b83a8f98dfca" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-ImportedMember-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ImportedMember-isSameKindAs-result"
                    xmi:uuid="cb4441b7-0a04-4621-aa5c-e68f16ddbd3d" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ImportedMember</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ElementImportReference"
            xmi:uuid="59a7cb49-17fc-4d6b-b016-ba0f5294a37d" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ElementImportReference-ownedComment"
                xmi:uuid="ba19dbea-d015-4e61-928c-d79d1c2768ff" xmi:type="uml:Comment">
                <body>An import reference to a single element to be imported into a unit.
</body>
                <annotatedElement xmi:idref="Alf-ElementImportReference"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ElementImportReference-elementImportReferenceReferent"
                xmi:uuid="81b80f03-8f6c-4ac3-a3e6-d8a9e5075b4a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ElementImportReference"/>
                <specification
                    xmi:id="Alf-ElementImportReference-elementImportReferenceReferent-specification"
                    xmi:uuid="fa65b318-797d-48f0-b26a-649e3726fc2b" xmi:type="uml:OpaqueExpression">
                    <body>The referent of an element import reference must be a packageable element.
</body>
                    <language>English</language>
                </specification>
                <name>elementImportReferenceReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-ElementImportReference-generalization"
                xmi:uuid="9f98e2ce-5bb4-4fb8-9918-9c3b531dc50e" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ImportReference"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ElementImportReference-alias"
                xmi:uuid="36adde4a-2d78-4a29-898f-ceb8c5ac495e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-ElementImportReference-alias-ownedComment"
                    xmi:uuid="02ac2205-1bf1-4157-b26b-bff1ef5d531f" xmi:type="uml:Comment">
                    <body>The alias to be used as the name for the imported element in the importing unit’s namespace.
</body>
                    <annotatedElement xmi:idref="Alf-ElementImportReference-alias"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ElementImportReference-alias-lowerValue"
                    xmi:uuid="3aa55d74-aa85-4bab-99f3-37f6500117f7" xmi:type="uml:LiteralInteger"/>
                <name>alias</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>ElementImportReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-EnumerationDefinition"
            xmi:uuid="dbd57d73-745e-4dcf-b743-bbf5b2a8bf9f" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-EnumerationDefinition-ownedComment"
                xmi:uuid="718f1179-7cc8-4094-84d0-caf0ca7e6511" xmi:type="uml:Comment">
                <body>The definition of an enumeration, whose members must all be enumeration literal names.
</body>
                <annotatedElement xmi:idref="Alf-EnumerationDefinition"/>
            </ownedComment>
            <ownedRule
                xmi:id="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent"
                xmi:uuid="501f0bbf-2d1b-4735-8a6f-6810ee24d5e6" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-EnumerationDefinition"/>
                <specification
                    xmi:id="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent-specification"
                    xmi:uuid="214b76bc-6d42-418e-8b0a-b1e23049f465" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of a class definition must all be classes. A class definition may not have any referents that are active classes unless this is an active class definition.
</body>
                    <language>English</language>
                </specification>
                <name>enumerationDefinitionSpecializationReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-EnumerationDefinition-generalization"
                xmi:uuid="4f01dd66-16b7-41ea-a5ca-17e93658de3f" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-EnumerationDefinition-matchForStub"
                xmi:uuid="b8712a65-549a-4334-9348-d9f0f7059f58" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-EnumerationDefinition-matchForStub-ownedComment"
                    xmi:uuid="63b97e1c-99ca-46b2-bcae-e481fbf5935d" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this enumeration definition considered as a classifier definition and the subunit is for an enumeration definition.
</body>
                    <annotatedElement xmi:idref="Alf-EnumerationDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-matchForStub-unit"
                    xmi:uuid="7f68f069-fda4-40f2-90f6-1eb0bd2f229b" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-matchForStub-result"
                    xmi:uuid="8e876a46-adaa-4f73-803e-08c8444bd96b" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-EnumerationDefinition-annotationAllowed"
                xmi:uuid="8d663137-0865-47b6-8fc9-62786bcee231" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-EnumerationDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="b8ab2d28-3d17-427c-9882-801981dd5153" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, an enumeration definition allows an annotation for any stereotype whose metaclass is consistent with Enumeration.
</body>
                    <annotatedElement xmi:idref="Alf-EnumerationDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-annotationAllowed-annotation"
                    xmi:uuid="6ddf838d-dc62-4f14-9fd0-399e4ba00dd2" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-annotationAllowed-result"
                    xmi:uuid="08262618-ff94-4cb5-ae34-a50baa14d9ef" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-EnumerationDefinition-isSameKindAs"
                xmi:uuid="bbf3c0d8-859d-40e4-acd6-70f0e5930fac" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-EnumerationDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="32f7fae9-38b2-4b4f-9aa7-92f85552b2ed" xmi:type="uml:Comment">
                    <body>Return true if the given member is either an EnumerationDefinition or an imported member whose referent is an EnumerationDefinition or an Enumeration.
</body>
                    <annotatedElement xmi:idref="Alf-EnumerationDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-isSameKindAs-member"
                    xmi:uuid="22a4b28a-b4d6-4882-a2cf-4e4ca985d82c" xmi:type="uml:Parameter">
                    <ownedComment
                        xmi:id="Alf-EnumerationDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="58ade700-2d8c-476b-a089-0c89bb58eb88" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-EnumerationDefinition-isSameKindAs-member"
                        />
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-EnumerationDefinition-isSameKindAs-result"
                    xmi:uuid="8e2784eb-92da-4314-8ccd-ab279da49fa2" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>EnumerationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-DataTypeDefinition"
            xmi:uuid="745fc3ee-09f1-4585-9093-13ebc7c4e168" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-DataTypeDefinition-ownedComment"
                xmi:uuid="1b94a389-66ce-4205-85f3-aa207c80f6dd" xmi:type="uml:Comment">
                <body>The definition of a data type, whose members must all be properties.
</body>
                <annotatedElement xmi:idref="Alf-DataTypeDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive"
                xmi:uuid="8879af90-1b73-49d0-81cf-e36644c708b2" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DataTypeDefinition"/>
                <specification
                    xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive-specification"
                    xmi:uuid="85cc7ef8-cc20-4534-a496-699edd5f10d4" xmi:type="uml:OpaqueExpression">
                    <body>If a data type is primitive, then it may not have any owned members.
</body>
                    <language>English</language>
                </specification>
                <name>dataTypeDefinitionPrimitive</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent"
                xmi:uuid="f11b3df8-1825-4f35-8a05-dfce13bc4928" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-DataTypeDefinition"/>
                <specification
                    xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent-specification"
                    xmi:uuid="13cdce8b-f3aa-48c0-8fe2-c28c12d1db6a" xmi:type="uml:OpaqueExpression">
                    <body>The specialization referents of a data type definition must all be data types.
</body>
                    <language>English</language>
                </specification>
                <name>dataTypeDefinitionSpecializationReferent</name>
            </ownedRule>
            <generalization xmi:id="Alf-DataTypeDefinition-generalization"
                xmi:uuid="55c42c41-2f94-4c57-94be-36f0fee5c54d" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-DataTypeDefinition-matchForStub"
                xmi:uuid="3879a1d9-433a-4b4a-abc7-6e47fcf96660" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-DataTypeDefinition-matchForStub-ownedComment"
                    xmi:uuid="e2466109-5ac3-43ac-b12c-7bf0ecc0f07a" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this data type definition considered as a classifier definition and the subunit is for a data type definition.
</body>
                    <annotatedElement xmi:idref="Alf-DataTypeDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-matchForStub-unit"
                    xmi:uuid="7f63f7c3-bc44-4860-bd5b-1fe1fd84b6fb" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-matchForStub-result"
                    xmi:uuid="c71fa57a-b241-452e-9fc1-936e4df81c85" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-DataTypeDefinition-annotationAllowed"
                xmi:uuid="8e8bb7e8-12ab-402c-bd65-0d7580ad1273" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-DataTypeDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="b73c728d-0693-4d08-a936-2650f36c9eb7" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, a data type definition allows @primitive annotations plus any stereotype whose metaclass is consistent with DataType.
</body>
                    <annotatedElement xmi:idref="Alf-DataTypeDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-annotationAllowed-annotation"
                    xmi:uuid="527288bd-39fe-45ac-a9cd-b34734f76853" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-annotationAllowed-result"
                    xmi:uuid="13b35f10-05e9-444e-890a-6e061936fa83" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-DataTypeDefinition-isSameKindAs"
                xmi:uuid="1bc212cc-6887-48b1-bc88-e2cdd37ee6e1" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-DataTypeDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="1c7b74ea-2449-4112-bf4a-890ee9dd40f6" xmi:type="uml:Comment">
                    <body>Return true if the given member is either a DataTypeDefinition or an imported member whose referent is a DataTypeDefinition or a DataType.
</body>
                    <annotatedElement xmi:idref="Alf-DataTypeDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-isSameKindAs-member"
                    xmi:uuid="aaa26fcb-7c74-4829-a931-56b10a48355c" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-DataTypeDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="726d5889-d4ed-4863-8a9c-36d2ef6d7958" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-DataTypeDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-DataTypeDefinition-isSameKindAs-result"
                    xmi:uuid="4e2f0fb2-992f-4816-8996-bdf109fbd828" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>DataTypeDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-OperationDefinition"
            xmi:uuid="f117bf4d-8e94-43ea-826d-34f0df8b68e9" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-OperationDefinition-ownedComment"
                xmi:uuid="87e663b1-58cf-42bb-8add-d6a167608dcd" xmi:type="uml:Comment">
                <body>The definition of an operation, with any formal parameters defined as owned members.
</body>
                <annotatedElement xmi:idref="Alf-OperationDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionNamespace"
                xmi:uuid="d1471682-39cd-4370-bbf6-323193c762b7" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionNamespace-specification"
                    xmi:uuid="363c4508-cedd-4b4e-95c6-b6fe6fb676e1" xmi:type="uml:OpaqueExpression">
                    <body>The namespace for an operation definition must be a class definition.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionNamespace</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation"
                xmi:uuid="43623cb1-1785-44c7-9f3b-f118de7d1923" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation-specification"
                    xmi:uuid="1bc5314e-92fa-4f06-98bf-84059ec8a018" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition has a redefinition list, its redefined operations are the referent operations of the names in the redefinition list for the operation definition. Otherwise, the redefined operations are any operations that would otherwise be indistinguishable from the operation being defined in this operation definition.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionRedefinedOperationDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionRedefinition"
                xmi:uuid="198dadcf-eae5-4ca9-bc4f-29589ba8323c" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionRedefinition-specification"
                    xmi:uuid="910cb880-c9b9-4a6b-ae4e-944a4a2ace53" xmi:type="uml:OpaqueExpression">
                    <body>Each name in the redefinition list of an operation definition must have a single referent that is an operation. This operation must be a non-private operation that is a member of a specialization referent of the class definition of the operation definition. 
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionRedefinition</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperations"
                xmi:uuid="df1b0ce6-ad22-43fa-b789-57ef43341e51" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperations-specification"
                    xmi:uuid="8e33b550-b839-431e-8594-bd028ecf86fc" xmi:type="uml:OpaqueExpression">
                    <body>The redefined operations of an operation definition must have formal parameters that match each of the formal parameters of this operation definition, in order. Two formal parameters match if they have the same direction, name, multiplicity bounds, ordering, uniqueness and type reference.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionRedefinedOperations</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation"
                xmi:uuid="4c9f4f37-c787-440e-aa93-87fe77d04f4d" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation-specification"
                    xmi:uuid="6f783946-c2bc-49da-b984-9d82d93c6efc" xmi:type="uml:OpaqueExpression">
                    <body>An operation definition is a feature.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionIsFeatureDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation"
                xmi:uuid="f9dff505-0678-4d23-9760-3d5f02606ed4" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation-specification"
                    xmi:uuid="cf00ea52-fe1d-43aa-8df6-96643febb433" xmi:type="uml:OpaqueExpression">
                    <body>An operation definition is a constructor if it has a @Create annotation.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionIsConstructorDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation"
                xmi:uuid="91c8bc58-3fed-4986-b0bc-3b200b107e98" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation-specification"
                    xmi:uuid="bddb2a46-7acb-43bc-ae06-7e9a6e83174e" xmi:type="uml:OpaqueExpression">
                    <body>An operation definition is a destructor if it has a @Destroy annotation.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionIsDestructorDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionConstructorDestructor"
                xmi:uuid="c9534942-3f2e-4109-9df1-5ecd4047ce6a" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionConstructorDestructor-specification"
                    xmi:uuid="b47624fe-72f9-4008-98a3-2becc57fd1e0" xmi:type="uml:OpaqueExpression">
                    <body>An operation definition cannot be both a constructor and a destructor.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionConstructorDestructor</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionConstructor"
                xmi:uuid="e1a90f84-f095-49db-918b-aaca40fc7002" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionConstructor-specification"
                    xmi:uuid="c8c48ee9-447e-4ef6-8319-a4a391b683f0" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition is a constructor, any redefined operation for it must also be a constructor. The body of a constructor may contain an alternative constructor invocation for another constructor in the same class or super constructor invocations for constructors in immediate superclasses.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionConstructor</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionDestructor"
                xmi:uuid="1f6db946-1a5a-40df-940e-35ea06b928ed" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionDestructor-specification"
                    xmi:uuid="1f214109-a5be-45a7-849b-16a5bc463f88" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition is a destructor, any redefined operation for it must also be a destructor. 
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionDestructor</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-OperationDefinition-operationDefinitionEffectiveBodyAssignmentsBefore"
                xmi:uuid="50af3282-b09b-4b98-b795-045fc36cd062" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionEffectiveBodyAssignmentsBefore-specification"
                    xmi:uuid="09702568-7c28-4092-9d58-d7edcf9435b8" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the effective body of an operation definition include an assignment for each "in" or "inout" formal parameter of the operation definition, with the formal parameter as the assigned source.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionEffectiveBodyAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionEffectiveBodyDerivation"
                xmi:uuid="00e93dac-9052-4d7d-ae3f-c0fc16d1d677" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionEffectiveBodyDerivation-specification"
                    xmi:uuid="c8cd9f99-b7a6-4c39-8b04-9e148ad6ce48" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition is a stub, then its effective body is the body of the corresponding subunit. Otherwise, the effective body is the same as the body of the operation definition.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionEffectiveBodyDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionAbstractOperation"
                xmi:uuid="6723cedb-48fe-4956-a03f-4a87a1cd8d77" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionAbstractOperation-specification"
                    xmi:uuid="98b7e844-8436-413c-a991-9690cc01a56d" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition is abstract, then its body must be empty.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionAbstractOperation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionReturn"
                xmi:uuid="5a7edea9-c42b-47e4-a58b-027e085adbd1" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-OperationDefinition"/>
                <specification
                    xmi:id="Alf-OperationDefinition-operationDefinitionReturn-specification"
                    xmi:uuid="fe22020e-9554-4d83-8dc4-4e01c91dcf67" xmi:type="uml:OpaqueExpression">
                    <body>If an operation definition has a return parameter with a multiplicity lower bound greater than 0, then the effective body of the operation definition must have a return value.
</body>
                    <language>English</language>
                </specification>
                <name>operationDefinitionReturn</name>
            </ownedRule>
            <generalization xmi:id="Alf-OperationDefinition-generalization"
                xmi:uuid="35ffe276-9022-489c-9b99-4c3f6ec46ab2" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-NamespaceDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-OperationDefinition-redefinition"
                xmi:uuid="6bfb4f19-19eb-459e-8609-b1149dd732af" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-OperationDefinition-redefinition-ownedComment"
                    xmi:uuid="f685c3d4-7598-4c69-80d1-39855a5b2764" xmi:type="uml:Comment">
                    <body>The names of other operations that are redefined by the operation being defined.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-redefinition"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-OperationDefinition-redefinition-lowerValue"
                    xmi:uuid="50d684b3-d7c0-48d3-b695-246c9a346aeb" xmi:type="uml:LiteralInteger"/>
                <name>redefinition</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-QualifiedNameList"/>
                <association xmi:idref="Alf-A_redefinition_operationDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-isAbstract"
                xmi:uuid="9966383e-e04c-479e-ad13-5c929d5410ea" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-OperationDefinition-isAbstract-ownedComment"
                    xmi:uuid="100a0cb8-f1c0-4066-9809-4e1069d17d93" xmi:type="uml:Comment">
                    <body>Whether the operation being defined is abstract.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-isAbstract"/>
                </ownedComment>
                <defaultValue xmi:id="Alf-OperationDefinition-isAbstract-defaultValue"
                    xmi:uuid="4b8ce1c7-ac37-489d-8a60-edb583bdae18" xmi:type="uml:LiteralBoolean"/>
                <name>isAbstract</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-body"
                xmi:uuid="e35a2f9e-2c3d-47b2-8904-4431784f2c54" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-OperationDefinition-body-ownedComment"
                    xmi:uuid="b4e02f3b-c6e0-4dec-a2f5-9bca76a334ad" xmi:type="uml:Comment">
                    <body>The sequence of statements that defines the behavior of the operation (empty for a stub).
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-body"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-OperationDefinition-body-lowerValue"
                    xmi:uuid="2cf0524b-6049-46d9-a6e0-6b2896ef0b32" xmi:type="uml:LiteralInteger"/>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_operationDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-redefinedOperation"
                xmi:uuid="42f4f1de-fbb7-41a9-8588-5ee0613df547" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-OperationDefinition-redefinedOperation-lowerValue"
                    xmi:uuid="710ee729-3528-4b2a-970d-1698bd6c3ad4" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-OperationDefinition-redefinedOperation-upperValue"
                    xmi:uuid="602f4255-86aa-41f9-8ff5-06d3341be9c0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>redefinedOperation</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-ElementReference"/>
                <association xmi:idref="Alf-A_redefinedOperation_operationDefinition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-isConstructor"
                xmi:uuid="397c7242-199d-4b0a-b49e-f3c099b93b4b" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-OperationDefinition-isConstructor-ownedComment"
                    xmi:uuid="7ae92ad7-0521-4c1d-b40b-bb50ae48c595" xmi:type="uml:Comment">
                    <body>Whether this operation definition is for a constructor.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-isConstructor"/>
                </ownedComment>
                <name>isConstructor</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-isDestructor"
                xmi:uuid="8762eb19-f670-40f3-b235-f8fe1bfb097e" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                <ownedComment xmi:id="Alf-OperationDefinition-isDestructor-ownedComment"
                    xmi:uuid="6994b410-64b8-4647-a77c-05d6d224554e" xmi:type="uml:Comment">
                    <body>Whether this operation definition is for a destructor.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-isDestructor"/>
                </ownedComment>
                <name>isDestructor</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-OperationDefinition-effectiveBody"
                xmi:uuid="561b12f4-e611-4a04-9659-595d8b814f21" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-OperationDefinition-effectiveBody-ownedComment"
                    xmi:uuid="d485f303-1ef8-4f4b-bb16-5eb8264c9ad9" xmi:type="uml:Comment">
                    <body>If this operation definition is a stub, then the body of the corresponding subunit.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-effectiveBody"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-OperationDefinition-effectiveBody-lowerValue"
                    xmi:uuid="e6ad85bc-6a04-431f-bd1b-a6f903ea3a9e" xmi:type="uml:LiteralInteger"/>
                <name>effectiveBody</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_effectiveBody_operationDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-OperationDefinition-annotationAllowed"
                xmi:uuid="ed46e076-49e5-4ff7-8750-41cb6488b3c7" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
                <ownedComment xmi:id="Alf-OperationDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="4c712950-d756-4d06-9f3e-3a1e0dea00d0" xmi:type="uml:Comment">
                    <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Operation.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-OperationDefinition-annotationAllowed-annotation"
                    xmi:uuid="bb94d7bd-6794-4553-95f9-1efc83c71b81" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-OperationDefinition-annotationAllowed-result"
                    xmi:uuid="87185ffd-8bb2-4d89-ac66-96929ecb64bf" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-OperationDefinition-matchForStub"
                xmi:uuid="b74ad41b-b7d7-4f5d-987f-def08183efde" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
                <ownedComment xmi:id="Alf-OperationDefinition-matchForStub-ownedComment"
                    xmi:uuid="468ff564-e1c9-4c93-a204-028adf824be2" xmi:type="uml:Comment">
                    <body>The namespace definition associated with the given unit definition must be an activity definition with no template parameters.  In addition, the subunit definition must have formal parameters that match each of the formal parameters of the stub definition, in order. Two formal parameters match if they have the same direction, name, multiplicity bounds, ordering, uniqueness and type reference If this operation definition is a constructor, then it is considered to have an implicit return parameter, following any other formal parameters, with the same type as the class of the operation definition and a multiplicity of 1..1.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-OperationDefinition-matchForStub-unit"
                    xmi:uuid="3faa7036-4e0b-48e6-8166-e4417aa91034" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-OperationDefinition-matchForStub-result"
                    xmi:uuid="aa973f18-7c6d-43be-8f76-3e98cbd2b06d" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-OperationDefinition-isSameKindAs"
                xmi:uuid="2f8f5503-05cd-4fb1-97ff-43120c25b660" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-OperationDefinition-isSameKindAs-ownedComment"
                    xmi:uuid="425d92b4-e2bd-4fe7-93e9-15518849c086" xmi:type="uml:Comment">
                    <body>Return true if the given member is either an OperationDefinition or an imported member whose referent is an OperationDefinition or an Operation, and the formal parameters of this operation definition match, in order, the parameters of the other operation definition or operation. In this context, matching means the same name and type (per UML Superstructure, Subclause 7.3.5). A constructor operation without an explicit return parameter is considered to implicitly have a return parameter, following any other formal parameters, of the same type as the owner of the constructor operation.
</body>
                    <annotatedElement xmi:idref="Alf-OperationDefinition-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-OperationDefinition-isSameKindAs-member"
                    xmi:uuid="83022495-386f-43c2-8a4d-293dc4101214" xmi:type="uml:Parameter">
                    <ownedComment xmi:id="Alf-OperationDefinition-isSameKindAs-member-ownedComment"
                        xmi:uuid="2d7b2625-2205-4375-9989-90e45217498c" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement xmi:idref="Alf-OperationDefinition-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-OperationDefinition-isSameKindAs-result"
                    xmi:uuid="500cee3b-f782-40cc-94ac-3b6481edd6ff" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>OperationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ClassifierTemplateParameter"
            xmi:uuid="20c9df30-baf3-4dfc-afd1-e1bbfb6a413a" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ClassifierTemplateParameter-ownedComment"
                xmi:uuid="76ecaa17-fac8-46a4-aa12-7fe75a3e637e" xmi:type="uml:Comment">
                <body>The definition of a classifier template parameter, which acts as a classifier within the definition of the template.
</body>
                <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter"/>
            </ownedComment>
            <generalization xmi:id="Alf-ClassifierTemplateParameter-generalization"
                xmi:uuid="b55cae03-0cd2-4986-8939-29272958e6c6" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed"
                xmi:uuid="1d82ffa4-27be-42f5-83b0-42224c3f9b66" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment
                    xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-ownedComment"
                    xmi:uuid="f531f791-0651-41ef-8d85-7587ec98e46a" xmi:type="uml:Comment">
                    <body>Annotations are not allowed on classifier template parameters.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-annotationAllowed"
                    />
                </ownedComment>
                <ownedParameter
                    xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-annotation"
                    xmi:uuid="4ca10a0c-162c-4f26-b3d1-e1fc1baa9bf4" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-result"
                    xmi:uuid="a0805fea-c8a9-47c7-bb14-a160ad2958e7" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-matchForStub"
                xmi:uuid="14c3221e-31b8-4e5f-beef-017a4032b21e" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-ClassifierTemplateParameter-matchForStub-ownedComment"
                    xmi:uuid="16b39caa-faad-4980-b480-18543c6af994" xmi:type="uml:Comment">
                    <body>Returns false. (Classifier template parameters cannot be stubs.)
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-matchForStub-unit"
                    xmi:uuid="85ca77ed-0b58-407e-aa58-6d475642bb39" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-matchForStub-result"
                    xmi:uuid="c094ddca-1055-4e55-8444-5d27147170a0" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs"
                xmi:uuid="f7bab66c-7d00-46c0-a918-e0438d512c17" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
                <ownedComment xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-ownedComment"
                    xmi:uuid="4b8195b1-ce66-46a2-8679-278682b9ea2d" xmi:type="uml:Comment">
                    <body>Return true if the given member is a classifier template parameter.
</body>
                    <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-isSameKindAs"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-member"
                    xmi:uuid="ac463fb3-a9dd-4610-bfd7-1f914fcdbc97" xmi:type="uml:Parameter">
                    <ownedComment
                        xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-member-ownedComment"
                        xmi:uuid="9d198eff-8d4d-4a7d-bcab-e82a08c786ac" xmi:type="uml:Comment">
                        <body>Returns true if the given member is distinguishable from this member. By default, this means that the names of the members are different. However, in any case that the UML Superstructure considers two names to be distinguishable if they are different, an Alf implementation may instead impose the stronger requirement that the names not be conflicting.
</body>
                        <annotatedElement
                            xmi:idref="Alf-ClassifierTemplateParameter-isSameKindAs-member"/>
                    </ownedComment>
                    <name>member</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-Member"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-result"
                    xmi:uuid="1476b5ac-b382-4fb8-af40-7144188e058b" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>isSameKindAs</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ClassifierTemplateParameter</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-TaggedValue" xmi:uuid="6882fffd-044a-406b-94df-06ad82c78bd6"
            xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-TaggedValue-ownedComment"
                xmi:uuid="ca290c87-2ccc-44c9-a4b3-b7c142257aea" xmi:type="uml:Comment">
                <body>An assignment of a value to an attribute of an applied stereotype.
</body>
                <annotatedElement xmi:idref="Alf-TaggedValue"/>
            </ownedComment>
            <generalization xmi:id="Alf-TaggedValue-generalization"
                xmi:uuid="c3a92407-d328-4d5a-b48b-2c17e08b341a" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-SyntaxElement"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-TaggedValue-name"
                xmi:uuid="24ffcb54-1b79-4751-8d83-c99299d5d906" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TaggedValue-name-ownedComment"
                    xmi:uuid="c13e9072-7049-4055-9cd1-9e54ed3f6b12" xmi:type="uml:Comment">
                    <body>The name of the stereotype attribute to be assigned a value.
</body>
                    <annotatedElement xmi:idref="Alf-TaggedValue-name"/>
                </ownedComment>
                <name>name</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TaggedValue-value"
                xmi:uuid="a9e95f9b-22ef-4b29-8024-c24ab89d4486" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TaggedValue-value-ownedComment"
                    xmi:uuid="1544b3a1-0f41-42d3-b248-a0d58a72abcf" xmi:type="uml:Comment">
                    <body>The string image of a literal value to be assigned to the stereotype attribute.
</body>
                    <annotatedElement xmi:idref="Alf-TaggedValue-value"/>
                </ownedComment>
                <name>value</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-TaggedValue-operator"
                xmi:uuid="183e873e-dc09-4ad4-bf72-dea84df5abd5" xmi:type="uml:Property">
                <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"/>
                <ownedComment xmi:id="Alf-TaggedValue-operator-ownedComment"
                    xmi:uuid="ab6d1c36-3251-4d69-913a-4184a22bd409" xmi:type="uml:Comment">
                    <body>For a numeric value, an optional unary plus or minus operator.
</body>
                    <annotatedElement xmi:idref="Alf-TaggedValue-operator"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-TaggedValue-operator-lowerValue"
                    xmi:uuid="3c2cb4b6-f71d-42b4-a858-13faad104fab" xmi:type="uml:LiteralInteger"/>
                <name>operator</name>
                <visibility>public</visibility>
            </ownedAttribute>
            <name>TaggedValue</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-ActivityDefinition"
            xmi:uuid="3df18f6d-c7b9-4b6e-a37d-5059dc15b2e5" xmi:type="uml:Class">
            <ownedComment xmi:id="Alf-ActivityDefinition-ownedComment"
                xmi:uuid="8648f560-75c9-4c82-babd-329b3c321d2c" xmi:type="uml:Comment">
                <body>The definition of an activity, with any formal parameters defined as owned members.
</body>
                <annotatedElement xmi:idref="Alf-ActivityDefinition"/>
            </ownedComment>
            <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionSpecialization"
                xmi:uuid="65c16a34-500a-491c-86e2-518cfbdf0e95" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActivityDefinition"/>
                <specification
                    xmi:id="Alf-ActivityDefinition-activityDefinitionSpecialization-specification"
                    xmi:uuid="67d9188a-c7fd-49c8-93b1-5b405025ce1e" xmi:type="uml:OpaqueExpression">
                    <body>An activity definition may not have a specialization list.
</body>
                    <language>English</language>
                </specification>
                <name>activityDefinitionSpecialization</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionPrimitive"
                xmi:uuid="3c93312f-176a-4ebd-a943-50ca026a315b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActivityDefinition"/>
                <specification
                    xmi:id="Alf-ActivityDefinition-activityDefinitionPrimitive-specification"
                    xmi:uuid="07c53ffa-b830-4f3a-9fd9-f6d208002388" xmi:type="uml:OpaqueExpression">
                    <body>If an activity definition is primitive, then it must have a body that is empty.
</body>
                    <language>English</language>
                </specification>
                <name>activityDefinitionPrimitive</name>
            </ownedRule>
            <ownedRule
                xmi:id="Alf-ActivityDefinition-activityDefinitionEffectiveBodyAssignmentsBefore"
                xmi:uuid="03e1659d-3cf4-4e43-80cc-e7169889ed0f" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActivityDefinition"/>
                <specification
                    xmi:id="Alf-ActivityDefinition-activityDefinitionEffectiveBodyAssignmentsBefore-specification"
                    xmi:uuid="b08edf35-db61-47a1-86eb-f3439d21fe2a" xmi:type="uml:OpaqueExpression">
                    <body>The assignments before the effective body of an activity definition include an assignment for each "in" or "inout" formal parameter of the activity definition, with the formal parameter as the assigned source.
</body>
                    <language>English</language>
                </specification>
                <name>activityDefinitionEffectiveBodyAssignmentsBefore</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionEffectiveBodyDerivation"
                xmi:uuid="d8e525f7-3f6b-47b4-aefc-0bddb5f7f299" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActivityDefinition"/>
                <specification
                    xmi:id="Alf-ActivityDefinition-activityDefinitionEffectiveBodyDerivation-specification"
                    xmi:uuid="1df82c1b-c17f-4376-9f71-1cf3859ba3b0" xmi:type="uml:OpaqueExpression">
                    <body>If an activity definition is a stub, then its effective body is the body of the corresponding subunit. Otherwise, the effective body is the same as the body of the activity definition.
</body>
                    <language>English</language>
                </specification>
                <name>activityDefinitionEffectiveBodyDerivation</name>
            </ownedRule>
            <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionReturn"
                xmi:uuid="de8cb449-207d-4b53-adc3-d5f56be7e22b" xmi:type="uml:Constraint">
                <constrainedElement xmi:idref="Alf-ActivityDefinition"/>
                <specification
                    xmi:id="Alf-ActivityDefinition-activityDefinitionReturn-specification"
                    xmi:uuid="bafbe115-d92b-4f69-9200-5a2521f48964" xmi:type="uml:OpaqueExpression">
                    <body>If an activity definition has a return parameter with a multiplicity lower bound greater than 0, then the effective body of the activity definition must have a return value.
</body>
                    <language>English</language>
                </specification>
                <name>activityDefinitionReturn</name>
            </ownedRule>
            <generalization xmi:id="Alf-ActivityDefinition-generalization"
                xmi:uuid="5d12dc2f-3ac9-4528-87af-2dba1beb69d1" xmi:type="uml:Generalization">
                <general xmi:idref="Alf-ClassifierDefinition"/>
            </generalization>
            <ownedAttribute xmi:id="Alf-ActivityDefinition-body"
                xmi:uuid="de31b951-80b0-4319-b22a-419d72485dfd" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ActivityDefinition-body-ownedComment"
                    xmi:uuid="55879fa5-7982-4c8d-b798-78e4b7b9dc2b" xmi:type="uml:Comment">
                    <body>The sequence of statements that defines the behavior of the activity (empty for a stub).
</body>
                    <annotatedElement xmi:idref="Alf-ActivityDefinition-body"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ActivityDefinition-body-lowerValue"
                    xmi:uuid="e5b94719-5eb6-41fc-b2db-b15bd03f2734" xmi:type="uml:LiteralInteger"/>
                <name>body</name>
                <visibility>public</visibility>
                <aggregation>composite</aggregation>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_body_activityDefnition"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="Alf-ActivityDefinition-effectiveBody"
                xmi:uuid="46760ba9-f5df-4dc5-97ab-0ce3e3e4d0ca" xmi:type="uml:Property">
                <ownedComment xmi:id="Alf-ActivityDefinition-effectiveBody-ownedComment"
                    xmi:uuid="c1446ec6-0dd5-4087-9d25-6cc1a41fc7bc" xmi:type="uml:Comment">
                    <body>If this activity definition is a stub, then the body of the corresponding subunit.
</body>
                    <annotatedElement xmi:idref="Alf-ActivityDefinition-effectiveBody"/>
                </ownedComment>
                <lowerValue xmi:id="Alf-ActivityDefinition-effectiveBody-lowerValue"
                    xmi:uuid="e73bcf99-afa1-4515-9774-98d1df2b1aea" xmi:type="uml:LiteralInteger"/>
                <name>effectiveBody</name>
                <visibility>public</visibility>
                <isDerived>true</isDerived>
                <type xmi:idref="Alf-Block"/>
                <association xmi:idref="Alf-A_effectiveBody_activityDefinition"/>
            </ownedAttribute>
            <ownedOperation xmi:id="Alf-ActivityDefinition-annotationAllowed"
                xmi:uuid="1fccf6b3-3f4a-4755-9a0e-3c45f99186e7" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
                <ownedComment xmi:id="Alf-ActivityDefinition-annotationAllowed-ownedComment"
                    xmi:uuid="312561ad-3184-40b7-888b-a96d41c9021d" xmi:type="uml:Comment">
                    <body>In addition to the annotations allowed for classifiers in general, an activity definition allows @primitive annotations and any stereotype whose metaclass is consistent with Activity.
</body>
                    <annotatedElement xmi:idref="Alf-ActivityDefinition-annotationAllowed"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ActivityDefinition-annotationAllowed-annotation"
                    xmi:uuid="6ea8bdd1-3389-4b54-a39f-25196c36de9d" xmi:type="uml:Parameter">
                    <name>annotation</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-StereotypeAnnotation"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ActivityDefinition-annotationAllowed-result"
                    xmi:uuid="280710cb-d6a7-4a6a-9730-ee898ca52cf6" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>annotationAllowed</name>
                <visibility>public</visibility>
            </ownedOperation>
            <ownedOperation xmi:id="Alf-ActivityDefinition-matchForStub"
                xmi:uuid="715c48af-93c9-489f-85ac-66708bec18a6" xmi:type="uml:Operation">
                <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
                <ownedComment xmi:id="Alf-ActivityDefinition-matchForStub-ownedComment"
                    xmi:uuid="8ae8c0dd-10d7-4ca3-8381-d5e581470910" xmi:type="uml:Comment">
                    <body>Returns true if the given unit definition matches this activity definition considered as a classifier definition and the subunit is for an activity definition. In addition, the subunit definition must have formal parameters that match each of the formal parameters of the stub definition, in order. Two formal parameters match if they have the same direction, name, multiplicity bounds, ordering, uniqueness and type reference.
</body>
                    <annotatedElement xmi:idref="Alf-ActivityDefinition-matchForStub"/>
                </ownedComment>
                <ownedParameter xmi:id="Alf-ActivityDefinition-matchForStub-unit"
                    xmi:uuid="70af89b4-2e20-4211-95b6-1ab5fc60e32d" xmi:type="uml:Parameter">
                    <name>unit</name>
                    <visibility>public</visibility>
                    <type xmi:idref="Alf-UnitDefinition"/>
                </ownedParameter>
                <ownedParameter xmi:id="Alf-ActivityDefinition-matchForStub-result"
                    xmi:uuid="e7f3d856-9438-4419-9d2d-776f893fbe68" xmi:type="uml:Parameter">
                    <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"/>
                    <name>result</name>
                    <visibility>public</visibility>
                    <direction>return</direction>
                </ownedParameter>
                <name>matchForStub</name>
                <visibility>public</visibility>
            </ownedOperation>
            <name>ActivityDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_annotation_member"
            xmi:uuid="27f6e283-a167-4bf6-8288-836e8126e999" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Member-annotation"/>
            <memberEnd xmi:idref="Alf-A_annotation_member-member"/>
            <ownedEnd xmi:id="Alf-A_annotation_member-member"
                xmi:uuid="570eb92d-8342-4167-8a0d-93b46dc0ec16" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_annotation_member-member-lowerValue"
                    xmi:uuid="2e595701-dceb-4a35-a132-f4fe074dbb68" xmi:type="uml:LiteralInteger"/>
                <name>member</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Member"/>
                <association xmi:idref="Alf-A_annotation_member"/>
            </ownedEnd>
            <name>A_annotation_member</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_namespaceName_unitDefinition"
            xmi:uuid="fad159b2-f4aa-45df-9788-7a6c0eaefa9f" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnitDefinition-namespaceName"/>
            <memberEnd xmi:idref="Alf-A_namespaceName_unitDefinition-unitDefinition"/>
            <ownedEnd xmi:id="Alf-A_namespaceName_unitDefinition-unitDefinition"
                xmi:uuid="ca93e59f-efc4-4fae-ad72-8bc0e6e91126" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_namespaceName_unitDefinition-unitDefinition-lowerValue"
                    xmi:uuid="395a6ff2-266c-4d33-b2d0-8d78bcff0b18" xmi:type="uml:LiteralInteger"/>
                <name>unitDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_namespaceName_unitDefinition"/>
            </ownedEnd>
            <name>A_namespaceName_unitDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_subunit_member"
            xmi:uuid="5e0f2531-7b04-4d6c-9dd7-00a797ace639" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-Member-subunit"/>
            <memberEnd xmi:idref="Alf-A_subunit_member-member"/>
            <ownedEnd xmi:id="Alf-A_subunit_member-member"
                xmi:uuid="ec403589-986e-4185-9a15-af608d8528df" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_subunit_member-member-lowerValue"
                    xmi:uuid="cc3d5e28-4bbf-4828-b039-449568b07364" xmi:type="uml:LiteralInteger"/>
                <name>member</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-Member"/>
                <association xmi:idref="Alf-A_subunit_member"/>
            </ownedEnd>
            <name>A_subunit_member</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referentName_importReference"
            xmi:uuid="fa9486c7-aa91-45c2-a1b7-f88d9c1eb468" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ImportReference-referentName"/>
            <memberEnd xmi:idref="Alf-A_referentName_importReference-importReference"/>
            <ownedEnd xmi:id="Alf-A_referentName_importReference-importReference"
                xmi:uuid="d0e1f57d-8c46-4a2d-8313-eb1c5fc4f60b" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_referentName_importReference-importReference-lowerValue"
                    xmi:uuid="4da3a5ce-4e24-446e-a884-ac91e3ad1478" xmi:type="uml:LiteralInteger"/>
                <name>importReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ImportReference"/>
                <association xmi:idref="Alf-A_referentName_importReference"/>
            </ownedEnd>
            <name>A_referentName_importReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_member_namespaceDefinition"
            xmi:uuid="f57e11f3-8e6a-41a9-908c-6362e8e9f7cd" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamespaceDefinition-member"/>
            <memberEnd xmi:idref="Alf-A_member_namespaceDefinition-namespaceDefinition"/>
            <ownedEnd xmi:id="Alf-A_member_namespaceDefinition-namespaceDefinition"
                xmi:uuid="a685ed5e-226f-4c93-9768-4695d01641eb" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_member_namespaceDefinition-namespaceDefinition-lowerValue"
                    xmi:uuid="3553684b-d72f-49b4-a3e3-5ad9537863e7" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_member_namespaceDefinition-namespaceDefinition-upperValue"
                    xmi:uuid="a04753e5-999e-48b8-968c-a095deb01e05"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>namespaceDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-NamespaceDefinition"/>
                <association xmi:idref="Alf-A_member_namespaceDefinition"/>
            </ownedEnd>
            <name>A_member_namespaceDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_names_stereotypeAnnotation"
            xmi:uuid="ff29b1a2-9ebf-47b0-b031-e44b66068c67" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-StereotypeAnnotation-names"/>
            <memberEnd xmi:idref="Alf-A_names_stereotypeAnnotation-stereotypeAnnotation"/>
            <ownedEnd xmi:id="Alf-A_names_stereotypeAnnotation-stereotypeAnnotation"
                xmi:uuid="2ec3bc12-18f2-4230-a027-c22c54e0177a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_names_stereotypeAnnotation-stereotypeAnnotation-lowerValue"
                    xmi:uuid="39b903e5-cb6d-4bc5-ba60-35763a11be24" xmi:type="uml:LiteralInteger"/>
                <name>stereotypeAnnotation</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-StereotypeAnnotation"/>
                <association xmi:idref="Alf-A_names_stereotypeAnnotation"/>
            </ownedEnd>
            <name>A_names_stereotypeAnnotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_taggedValues_stereotypeAnnotation"
            xmi:uuid="67752f45-87a9-4969-b137-fbb9330d3c8c" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-StereotypeAnnotation-taggedValues"/>
            <memberEnd xmi:idref="Alf-A_taggedValues_stereotypeAnnotation-stereotypeAnnotation"/>
            <ownedEnd xmi:id="Alf-A_taggedValues_stereotypeAnnotation-stereotypeAnnotation"
                xmi:uuid="5c6e2bc1-1913-4f95-88db-7694ba4df2a4" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_taggedValues_stereotypeAnnotation-stereotypeAnnotation-lowerValue"
                    xmi:uuid="e0738d7c-197d-4f43-a188-eef6ba12d7cd" xmi:type="uml:LiteralInteger"/>
                <name>stereotypeAnnotation</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-StereotypeAnnotation"/>
                <association xmi:idref="Alf-A_taggedValues_stereotypeAnnotation"/>
            </ownedEnd>
            <name>A_taggedValues_stereotypeAnnotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_redefinition_operationDefinition"
            xmi:uuid="86222de2-6bd0-47f5-935a-a9b4dc0c7a1b" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-OperationDefinition-redefinition"/>
            <memberEnd xmi:idref="Alf-A_redefinition_operationDefinition-operationDefinition"/>
            <ownedEnd xmi:id="Alf-A_redefinition_operationDefinition-operationDefinition"
                xmi:uuid="525c3e1a-fde4-4a7b-973a-d62df09b9d95" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_redefinition_operationDefinition-operationDefinition-lowerValue"
                    xmi:uuid="0cd9d506-5882-429e-af53-7775ce036e07" xmi:type="uml:LiteralInteger"/>
                <name>operationDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-OperationDefinition"/>
                <association xmi:idref="Alf-A_redefinition_operationDefinition"/>
            </ownedEnd>
            <name>A_redefinition_operationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_effectiveBody_activityDefinition"
            xmi:uuid="63ea9c3c-dd6d-400a-bac2-4f17bac077a0" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ActivityDefinition-effectiveBody"/>
            <memberEnd xmi:idref="Alf-A_effectiveBody_activityDefinition-activityDefinition"/>
            <ownedEnd xmi:id="Alf-A_effectiveBody_activityDefinition-activityDefinition"
                xmi:uuid="74c47888-6cb0-4fc0-a4ae-1a040195fbd6" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_effectiveBody_activityDefinition-activityDefinition-lowerValue"
                    xmi:uuid="951bba45-7ffd-471c-9e73-71a244038593" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_effectiveBody_activityDefinition-activityDefinition-upperValue"
                    xmi:uuid="d13dd131-45e3-4274-8a4e-ad2d73377fcd"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>activityDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ActivityDefinition"/>
                <association xmi:idref="Alf-A_effectiveBody_activityDefinition"/>
            </ownedEnd>
            <name>A_effectiveBody_activityDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_specializationReferent_classifierDefinition"
            xmi:uuid="efe0f58a-7fc5-4274-87f4-c91729d9a305" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifierDefinition-specializationReferent"/>
            <memberEnd
                xmi:idref="Alf-A_specializationReferent_classifierDefinition-classifierDefinition"/>
            <ownedEnd
                xmi:id="Alf-A_specializationReferent_classifierDefinition-classifierDefinition"
                xmi:uuid="65a470cb-0538-4920-a93a-1eacb86cb7ba" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_specializationReferent_classifierDefinition-classifierDefinition-lowerValue"
                    xmi:uuid="33d7bcd6-7187-43fd-bd5f-c3a1a62d4e87" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_specializationReferent_classifierDefinition-classifierDefinition-upperValue"
                    xmi:uuid="9688a5d7-35db-4978-b971-613fbaa2c7e4"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>classifierDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifierDefinition"/>
                <association xmi:idref="Alf-A_specializationReferent_classifierDefinition"/>
            </ownedEnd>
            <name>A_specializationReferent_classifierDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_importedMember"
            xmi:uuid="45219f41-5974-4fa9-9ace-9aef4e5a59d8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ImportedMember-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_importedMember-importedMember"/>
            <ownedEnd xmi:id="Alf-A_referent_importedMember-importedMember"
                xmi:uuid="26076d47-855b-4b26-831c-91c60c986ffc" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_referent_importedMember-importedMember-lowerValue"
                    xmi:uuid="29f7ddd8-a558-4723-9134-2a8655ece5a3" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_referent_importedMember-importedMember-upperValue"
                    xmi:uuid="a8047802-6d28-4b9c-8e4d-98e5c0bfdfe0"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>importedMember</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ImportedMember"/>
                <association xmi:idref="Alf-A_referent_importedMember"/>
            </ownedEnd>
            <name>A_referent_importedMember</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_stereotype_stereotypeAnnotation"
            xmi:uuid="3bda8199-e6fe-40b7-8045-cb7862d05cfc" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-StereotypeAnnotation-stereotype"/>
            <memberEnd xmi:idref="Alf-A_stereotype_stereotypeAnnotation-stereotypeAnnotation"/>
            <ownedEnd xmi:id="Alf-A_stereotype_stereotypeAnnotation-stereotypeAnnotation"
                xmi:uuid="f9247a0a-a925-4e65-bcfa-70b6c5d2ffd4" xmi:type="uml:Property">
                <name>stereotypeAnnotation</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-StereotypeAnnotation"/>
                <association xmi:idref="Alf-A_stereotype_stereotypeAnnotation"/>
            </ownedEnd>
            <name>A_stereotype_stereotypeAnnotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_stereotypeName_stereotypeAnnotation"
            xmi:uuid="d8ccffb6-a81f-44e8-8516-a012b2b0c823" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-StereotypeAnnotation-stereotypeName"/>
            <memberEnd xmi:idref="Alf-A_stereotypeName_stereotypeAnnotation-stereotypeAnnotation"/>
            <ownedEnd xmi:id="Alf-A_stereotypeName_stereotypeAnnotation-stereotypeAnnotation"
                xmi:uuid="33cab945-0194-43b7-97b6-ac4193f9811a" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_stereotypeName_stereotypeAnnotation-stereotypeAnnotation-lowerValue"
                    xmi:uuid="6c349d96-1c70-43ef-a24b-342bd47c64e8" xmi:type="uml:LiteralInteger"/>
                <name>stereotypeAnnotation</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-StereotypeAnnotation"/>
                <association xmi:idref="Alf-A_stereotypeName_stereotypeAnnotation"/>
            </ownedEnd>
            <name>A_stereotypeName_stereotypeAnnotation</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_appliedProfile_packageDefinition"
            xmi:uuid="0e67a5b2-5360-41dd-bdbd-0f7c8a5b2a5a" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PackageDefinition-appliedProfile"/>
            <memberEnd xmi:idref="Alf-A_appliedProfile_packageDefinition-packageDefinition"/>
            <ownedEnd xmi:id="Alf-A_appliedProfile_packageDefinition-packageDefinition"
                xmi:uuid="09484ac2-3705-4155-866c-730d9f6232ec" xmi:type="uml:Property">
                <name>packageDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PackageDefinition"/>
                <association xmi:idref="Alf-A_appliedProfile_packageDefinition"/>
            </ownedEnd>
            <name>A_appliedProfile_packageDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_signal_receptionDefinition"
            xmi:uuid="f73acd46-eab9-408d-86a6-14d0eba63d90" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ReceptionDefinition-signal"/>
            <memberEnd xmi:idref="Alf-A_signal_receptionDefinition-receptionDefinition"/>
            <ownedEnd xmi:id="Alf-A_signal_receptionDefinition-receptionDefinition"
                xmi:uuid="07d5525d-8c86-4ea0-b11b-9ac810c994ba" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_signal_receptionDefinition-receptionDefinition-lowerValue"
                    xmi:uuid="5489eb08-290f-4b09-a995-bf945dd2c144" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_signal_receptionDefinition-receptionDefinition-upperValue"
                    xmi:uuid="c0aa1158-f33d-4fed-9654-623aff58c173"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>receptionDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ReceptionDefinition"/>
                <association xmi:idref="Alf-A_signal_receptionDefinition"/>
            </ownedEnd>
            <name>A_signal_receptionDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_type_typedElementDefinition"
            xmi:uuid="940a07ac-0f3a-457c-92d9-c3324c16d950" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-TypedElementDefinition-type"/>
            <memberEnd xmi:idref="Alf-A_type_typedElementDefinition-typedElementDefinition"/>
            <ownedEnd xmi:id="Alf-A_type_typedElementDefinition-typedElementDefinition"
                xmi:uuid="cbc32b0f-53da-4852-a8ea-8dfee9d3d209" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_type_typedElementDefinition-typedElementDefinition-lowerValue"
                    xmi:uuid="e9ed52e9-7251-4db9-b2c6-b7cab9d8351f" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_type_typedElementDefinition-typedElementDefinition-upperValue"
                    xmi:uuid="1fa7c8a2-162f-4854-b32b-4e4afeb11e5e"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>typedElementDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-TypedElementDefinition"/>
                <association xmi:idref="Alf-A_type_typedElementDefinition"/>
            </ownedEnd>
            <name>A_type_typedElementDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_receptionDefinition_signalName"
            xmi:uuid="f0410473-9e35-4709-9a6f-55535f02bebf" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-A_receptionDefinition_signalName-receptionDefinition"/>
            <memberEnd xmi:idref="Alf-ReceptionDefinition-signalName"/>
            <ownedEnd xmi:id="Alf-A_receptionDefinition_signalName-receptionDefinition"
                xmi:uuid="f8bde362-4b25-41b4-97ea-513f9a795fb4" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_receptionDefinition_signalName-receptionDefinition-lowerValue"
                    xmi:uuid="4aab2900-ab45-4cf4-b0ce-6fd4748233fc" xmi:type="uml:LiteralInteger"/>
                <name>receptionDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ReceptionDefinition"/>
                <association xmi:idref="Alf-A_receptionDefinition_signalName"/>
            </ownedEnd>
            <name>A_receptionDefinition_signalName</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_redefinedOperation_operationDefinition"
            xmi:uuid="4884d3c6-9f4a-4d4b-a529-f6b7197c3cbf" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-OperationDefinition-redefinedOperation"/>
            <memberEnd xmi:idref="Alf-A_redefinedOperation_operationDefinition-operationDefinition"/>
            <ownedEnd xmi:id="Alf-A_redefinedOperation_operationDefinition-operationDefinition"
                xmi:uuid="5d3cd865-b3bb-42c8-b333-f739b887be7d" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_redefinedOperation_operationDefinition-operationDefinition-lowerValue"
                    xmi:uuid="f1ca0cb0-eb7f-4cdc-ab54-dfcfac216736" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_redefinedOperation_operationDefinition-operationDefinition-upperValue"
                    xmi:uuid="7bb7f1d0-a5ea-46e3-a51a-300cce1060f1"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>operationDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-OperationDefinition"/>
                <association xmi:idref="Alf-A_redefinedOperation_operationDefinition"/>
            </ownedEnd>
            <name>A_redefinedOperation_operationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_classifierBehavior_activeClassDefinition"
            xmi:uuid="ac19359e-5107-44d4-9180-aa72c64984a2" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ActiveClassDefinition-classifierBehavior"/>
            <memberEnd
                xmi:idref="Alf-A_classifierBehavior_activeClassDefinition-activeClassDefinition"/>
            <ownedEnd xmi:id="Alf-A_classifierBehavior_activeClassDefinition-activeClassDefinition"
                xmi:uuid="8ea19a02-ff55-4258-b812-9eee4b729fb7" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_classifierBehavior_activeClassDefinition-activeClassDefinition-lowerValue"
                    xmi:uuid="c75a48c8-55db-40ff-86f5-04f294ec3e6f" xmi:type="uml:LiteralInteger"/>
                <name>activeClassDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ActiveClassDefinition"/>
                <association xmi:idref="Alf-A_classifierBehavior_activeClassDefinition"/>
            </ownedEnd>
            <name>A_classifierBehavior_activeClassDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_operationDefinition"
            xmi:uuid="e92290ae-34e7-4804-a60f-66129f8d3755" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-OperationDefinition-body"/>
            <memberEnd xmi:idref="Alf-A_body_operationDefinition-operationDefinition"/>
            <ownedEnd xmi:id="Alf-A_body_operationDefinition-operationDefinition"
                xmi:uuid="a8edcb2c-0f43-4083-bea3-21fa2e493853" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_operationDefinition-operationDefinition-lowerValue"
                    xmi:uuid="2eaacbe5-b24f-48de-a6c9-9190d39e020d" xmi:type="uml:LiteralInteger"/>
                <name>operationDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-OperationDefinition"/>
                <association xmi:idref="Alf-A_body_operationDefinition"/>
            </ownedEnd>
            <name>A_body_operationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_effectiveBody_operationDefinition"
            xmi:uuid="f3613212-4f48-459c-92eb-05d2b878d7f1" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-OperationDefinition-effectiveBody"/>
            <memberEnd xmi:idref="Alf-A_effectiveBody_operationDefinition-operationDefinition"/>
            <ownedEnd xmi:id="Alf-A_effectiveBody_operationDefinition-operationDefinition"
                xmi:uuid="a9b7922a-9ce9-499d-9c41-25e621ff8874" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_effectiveBody_operationDefinition-operationDefinition-lowerValue"
                    xmi:uuid="e394600a-6952-49d9-951a-bd3f2e386c9b" xmi:type="uml:LiteralInteger"/>
                <upperValue
                    xmi:id="Alf-A_effectiveBody_operationDefinition-operationDefinition-upperValue"
                    xmi:uuid="9dca62d5-57ab-4b6e-baa4-389cc9449b92"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>operationDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-OperationDefinition"/>
                <association xmi:idref="Alf-A_effectiveBody_operationDefinition"/>
            </ownedEnd>
            <name>A_effectiveBody_operationDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_ownedMember_namespace"
            xmi:uuid="cf3166d0-a7f8-4104-bf8f-cca3372c94a8" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-NamespaceDefinition-ownedMember"/>
            <memberEnd xmi:idref="Alf-Member-namespace"/>
            <name>A_ownedMember_namespace</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_taggedValue_taggedValueList"
            xmi:uuid="9afdf5f2-8b6f-4419-8c83-8b9d1ab341c0" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-TaggedValueList-taggedValue"/>
            <memberEnd xmi:idref="Alf-A_taggedValue_taggedValueList-taggedValueList"/>
            <ownedEnd xmi:id="Alf-A_taggedValue_taggedValueList-taggedValueList"
                xmi:uuid="6b026fb1-f0b8-4898-b29f-0cbfeaa0abe7" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_taggedValue_taggedValueList-taggedValueList-lowerValue"
                    xmi:uuid="7b522f48-695c-4fb5-bdc2-00fda56e4ca2" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_taggedValue_taggedValueList-taggedValueList-upperValue"
                    xmi:uuid="941dd9c3-6fe5-4e6e-adbf-a1ee0a06386e"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>taggedValueList</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-TaggedValueList"/>
                <association xmi:idref="Alf-A_taggedValue_taggedValueList"/>
            </ownedEnd>
            <name>A_taggedValue_taggedValueList</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_definition_unit"
            xmi:uuid="e232fa88-1b35-4a7e-9418-248234412a4d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnitDefinition-definition"/>
            <memberEnd xmi:idref="Alf-NamespaceDefinition-unit"/>
            <name>A_definition_unit</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_initializer_propertyDefinition"
            xmi:uuid="0586e52b-d54a-4905-807e-4953dccc01fc" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-PropertyDefinition-initializer"/>
            <memberEnd xmi:idref="Alf-A_initializer_propertyDefinition-propertyDefinition"/>
            <ownedEnd xmi:id="Alf-A_initializer_propertyDefinition-propertyDefinition"
                xmi:uuid="03e2c329-07c2-49c5-9894-c8433e02cc83" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_initializer_propertyDefinition-propertyDefinition-lowerValue"
                    xmi:uuid="fcbf2b5f-9c6d-4e14-b833-3d75a5ffc646" xmi:type="uml:LiteralInteger"/>
                <name>propertyDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-PropertyDefinition"/>
                <association xmi:idref="Alf-A_initializer_propertyDefinition"/>
            </ownedEnd>
            <name>A_initializer_propertyDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_body_activityDefnition"
            xmi:uuid="ae3eeb27-9b8e-45de-a387-74adc6ce1d6d" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ActivityDefinition-body"/>
            <memberEnd xmi:idref="Alf-A_body_activityDefnition-activityDefinition"/>
            <ownedEnd xmi:id="Alf-A_body_activityDefnition-activityDefinition"
                xmi:uuid="ca7e374d-eb1c-4130-bfda-1400cc446d2a" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_body_activityDefnition-activityDefinition-lowerValue"
                    xmi:uuid="6c74e4fb-6d39-48ec-82cc-16db78becfe4" xmi:type="uml:LiteralInteger"/>
                <name>activityDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ActivityDefinition"/>
                <association xmi:idref="Alf-A_body_activityDefnition"/>
            </ownedEnd>
            <name>A_body_activityDefnition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_specialization_classifierDefinition"
            xmi:uuid="b11b3d1a-4cd2-4e18-bbb6-5da5b28f9aa7" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ClassifierDefinition-specialization"/>
            <memberEnd xmi:idref="Alf-A_specialization_classifierDefinition-classifierDefinition"/>
            <ownedEnd xmi:id="Alf-A_specialization_classifierDefinition-classifierDefinition"
                xmi:uuid="b13dcd47-d79d-4255-8ebe-869c29f7b19c" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_specialization_classifierDefinition-classifierDefinition-lowerValue"
                    xmi:uuid="6ebe2313-ca49-4724-b693-cc59e552f177" xmi:type="uml:LiteralInteger"/>
                <name>classifierDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ClassifierDefinition"/>
                <association xmi:idref="Alf-A_specialization_classifierDefinition"/>
            </ownedEnd>
            <name>A_specialization_classifierDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_referent_importReference"
            xmi:uuid="d8c557b3-6f41-416e-947e-f28be6933058" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-ImportReference-referent"/>
            <memberEnd xmi:idref="Alf-A_referent_importReference-importReference"/>
            <ownedEnd xmi:id="Alf-A_referent_importReference-importReference"
                xmi:uuid="34a834bf-aeb2-48f5-87a7-95762cebaa6f" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_referent_importReference-importReference-lowerValue"
                    xmi:uuid="e8f4ab15-153c-48ae-bfa2-cfa3e8760b51" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_referent_importReference-importReference-upperValue"
                    xmi:uuid="5c86936f-6bf5-4d45-a5f5-f73f48fda77f"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>importReference</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-ImportReference"/>
                <association xmi:idref="Alf-A_referent_importReference"/>
            </ownedEnd>
            <name>A_referent_importReference</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_namespace_unitDefinition"
            xmi:uuid="041b661d-266f-4d47-9d0f-44a659561641" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnitDefinition-namespace"/>
            <memberEnd xmi:idref="Alf-A_namespace_unitDefinition-unitDefinition"/>
            <ownedEnd xmi:id="Alf-A_namespace_unitDefinition-unitDefinition"
                xmi:uuid="db4fc099-86f8-4727-96f0-156ebb00675c" xmi:type="uml:Property">
                <lowerValue xmi:id="Alf-A_namespace_unitDefinition-unitDefinition-lowerValue"
                    xmi:uuid="d1120252-528a-4076-bcd7-a4ce2422c1fb" xmi:type="uml:LiteralInteger"/>
                <upperValue xmi:id="Alf-A_namespace_unitDefinition-unitDefinition-upperValue"
                    xmi:uuid="c0e76de0-6d92-4ecb-8e9f-5a34ea59764e"
                    xmi:type="uml:LiteralUnlimitedNatural">
                    <value>*</value>
                </upperValue>
                <name>unitDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_namespace_unitDefinition"/>
            </ownedEnd>
            <name>A_namespace_unitDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_import_unit" xmi:uuid="397729ac-e500-4439-9fda-55b960b151e7"
            xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnitDefinition-import"/>
            <memberEnd xmi:idref="Alf-ImportReference-unit"/>
            <name>A_import_unit</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_appliedProfile_unitDefinition"
            xmi:uuid="ea597cb1-1136-4001-ae58-2f07c22b0bf6" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-UnitDefinition-appliedProfile"/>
            <memberEnd xmi:idref="Alf-A_appliedProfile_unitDefinition-unitDefinition"/>
            <ownedEnd xmi:id="Alf-A_appliedProfile_unitDefinition-unitDefinition"
                xmi:uuid="25a4494e-b126-4875-b1dd-a513e2ee70a6" xmi:type="uml:Property">
                <name>unitDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-UnitDefinition"/>
                <association xmi:idref="Alf-A_appliedProfile_unitDefinition"/>
            </ownedEnd>
            <name>A_appliedProfile_unitDefinition</name>
        </packagedElement>
        <packagedElement xmi:id="Alf-A_typeName_typedElementDefinition"
            xmi:uuid="695541b5-ec55-4490-b2ff-14294367a44e" xmi:type="uml:Association">
            <memberEnd xmi:idref="Alf-TypedElementDefinition-typeName"/>
            <memberEnd xmi:idref="Alf-A_typeName_typedElementDefinition-typedElementDefinition"/>
            <ownedEnd xmi:id="Alf-A_typeName_typedElementDefinition-typedElementDefinition"
                xmi:uuid="2b25fa43-acbf-4eed-90fa-90d641089474" xmi:type="uml:Property">
                <lowerValue
                    xmi:id="Alf-A_typeName_typedElementDefinition-typedElementDefinition-lowerValue"
                    xmi:uuid="ee046a4b-997a-47ce-9cd1-f3cbaa0238a5" xmi:type="uml:LiteralInteger"/>
                <name>typedElementDefinition</name>
                <visibility>public</visibility>
                <type xmi:idref="Alf-TypedElementDefinition"/>
                <association xmi:idref="Alf-A_typeName_typedElementDefinition"/>
            </ownedEnd>
            <name>A_typeName_typedElementDefinition</name>
        </packagedElement>
        <name>Alf</name>
        <URI>http://www.omg.org/spec/ALF/20170201</URI>
    </uml:Package>
    <mofext:Tag xmi:id="_-Tag" xmi:uuid="725A27D7-DC56-43F9-978B-36D60BFDA381" xmi:type="mofext:Tag">
        <name>org.omg.xmi.nsPrefix</name>
        <value>alf</value>
        <element xmi:idref="Alf"/>
    </mofext:Tag>
</xmi:XMI>
