<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.omg.org/spec/UML/20110701" xmlns:mofext="http://www.omg.org/spec/MOF/20110701">
  <uml:Package xmi:id="Alf" xmi:uuid="725A27D7-D3DC-48EE-970E-74F88DD1F261" xmi:type="uml:Package">
    <packagedElement xmi:id="Alf-AssignedSource" xmi:uuid="725A27D7-D3DC-428B-9E7B-74F8ABF63BD6" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-AssignedSource-ownedComment" xmi:uuid="725A27D7-D3DC-48C8-9000-74F843E56FFF" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-AssignedSource"/>
        <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>
      </ownedComment>
      <ownedAttribute xmi:id="Alf-AssignedSource-name" xmi:uuid="725A27D7-D3DC-4DD1-9F37-74F8DC079C3C" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-AssignedSource-name-ownedComment" xmi:uuid="725A27D7-D3DC-4333-90A4-74F8A4486190" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignedSource-name"/>
          <body>The local name for which this is the assigned source. </body>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignedSource-source" xmi:uuid="725A27D7-D3DC-4FC8-91B5-74F8639B8E47" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignedSource-source-ownedComment" xmi:uuid="725A27D7-D3DC-4206-9D82-74F8D1B427B9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignedSource-source"/>
          <body>The syntax element that is to be the source for the assigned value of the given local name. </body>
        </ownedComment>
        <name>source</name>
        <type xmi:idref="Alf-SyntaxElement"/>
        <association xmi:idref="Alf-A_source_assignedSource"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignedSource-upper" xmi:uuid="725A27D7-D3DC-452B-9099-74F88E0595E6" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"> </type>
        <ownedComment xmi:id="Alf-AssignedSource-upper-ownedComment" xmi:uuid="725A27D7-D3DC-407A-9425-74F80F9F8394" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignedSource-upper"/>
          <body>The multiplicity upper bound for the local name. </body>
        </ownedComment>
        <name>upper</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignedSource-lower" xmi:uuid="725A27D7-D3DC-468E-9997-74F80C348335" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"> </type>
        <ownedComment xmi:id="Alf-AssignedSource-lower-ownedComment" xmi:uuid="725A27D7-D3DC-4645-9414-74F8AFF4B625" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignedSource-lower"/>
          <body>The multiplicity lower bound for the name. </body>
        </ownedComment>
        <name>lower</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignedSource-type" xmi:uuid="725A27D7-D3DC-4016-9175-74F8A0780C89" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignedSource-type-ownedComment" xmi:uuid="725A27D7-D3DC-4F46-9463-74F87279499F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignedSource-type"/>
          <body>A reference to the element that gives the type for the local name (if any). </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-AssignedSource-type-lowerValue" xmi:uuid="725A27D7-D3DC-4E1C-952E-74F85F41C78A" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_type_assignedSource"/>
      </ownedAttribute>
      <name>AssignedSource</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-InternalElementReference" xmi:uuid="725A27D7-D3DC-4247-9666-74F88150B509" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-InternalElementReference-ownedComment" xmi:uuid="725A27D7-D3DC-45C2-9B9A-74F8FC57C647" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-InternalElementReference"/>
        <body>A direct reference to a UML model element. </body>
      </ownedComment>
      <generalization xmi:id="Alf-InternalElementReference-generalization" xmi:uuid="725A27D7-D3DC-4127-91AC-74F8DA58CF4D" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ElementReference"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-InternalElementReference-element" xmi:uuid="725A27D7-D3DC-42AB-9867-74F8F8BA8FEC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InternalElementReference-element-ownedComment" xmi:uuid="725A27D7-D3DC-4A4C-946D-74F8A6049FD3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InternalElementReference-element"/>
          <body>The Alf syntax element that represents the referenced model element. </body>
        </ownedComment>
        <name>element</name>
        <type xmi:idref="Alf-SyntaxElement"/>
        <association xmi:idref="Alf-A_element_internalElementReference"/>
      </ownedAttribute>
      <name>InternalElementReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ExternalElementReference" xmi:uuid="725A27D7-D3DC-4387-9D1F-74F84BCC3FC9" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ExternalElementReference-ownedComment" xmi:uuid="725A27D7-D3DC-4B9C-9DDA-74F8DFB8165B" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ExternalElementReference"/>
        <body>A direct reference to a UML model element. </body>
      </ownedComment>
      <generalization xmi:id="Alf-ExternalElementReference-generalization" xmi:uuid="725A27D7-D3DC-407D-91E5-74F80D9FD54C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ElementReference"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ExternalElementReference-element" xmi:uuid="725A27D7-D3DC-45AF-978C-74F869DBFC42" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Element"> </type>
        <ownedComment xmi:id="Alf-ExternalElementReference-element-ownedComment" xmi:uuid="725A27D7-D3DC-4829-92F3-74F8C7783E62" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExternalElementReference-element"/>
          <body>The referenced model element. </body>
        </ownedComment>
        <name>element</name>
        <association xmi:idref="Alf-A_element_externalElementReference"/>
      </ownedAttribute>
      <name>ExternalElementReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SyntaxElement" xmi:uuid="725A27D7-D3DC-4618-9F90-74F8A65A44FE" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SyntaxElement-ownedComment" xmi:uuid="725A27D7-D3DC-4948-961B-74F846F04FFF" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SyntaxElement"/>
        <body>A syntax element synthesized in an abstract syntax tree, along with any additional information determined during static semantic analysis. </body>
      </ownedComment>
      <name>SyntaxElement</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-ElementReference" xmi:uuid="725A27D7-D3DC-40B9-93D7-74F8E35B15AB" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ElementReference-ownedComment" xmi:uuid="725A27D7-D3DC-40BB-9E4D-74F84CA11C17" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ElementReference"/>
        <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>
      </ownedComment>
      <name>ElementReference</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-DocumentedElement" xmi:uuid="725A27D7-D3DC-4DAD-9AE6-74F81C92F3C5" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-DocumentedElement-ownedComment" xmi:uuid="725A27D7-D3DC-4EF2-9C78-74F8260A37C6" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-DocumentedElement"/>
        <body>A syntax element that has documentation comments associated with it. </body>
      </ownedComment>
      <generalization xmi:id="Alf-DocumentedElement-generalization" xmi:uuid="725A27D7-D3DC-4386-9F36-74F8A6AAF1B1" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-DocumentedElement-documentation" xmi:uuid="725A27D7-D3DC-45D9-9EFD-74F82A796526" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-DocumentedElement-documentation-ownedComment" xmi:uuid="725A27D7-D3DC-4D40-944C-74F8D65F3DDA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DocumentedElement-documentation"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-DocumentedElement-documentation-lowerValue" xmi:uuid="725A27D7-D3DC-47DF-975E-74F8CD4E6B89" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-DocumentedElement-documentation-upperValue" xmi:uuid="725A27D7-D3DC-451C-9863-74F814B150D9" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>documentation</name>
      </ownedAttribute>
      <name>DocumentedElement</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_element_externalElementReference" xmi:uuid="725A27D7-D3DC-433B-94D5-74F8DA60AB12" 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="725A27D7-D3DC-4513-93ED-74F8724478CE" xmi:type="uml:Property">
        <name>externalElementReference</name>
        <type xmi:idref="Alf-ExternalElementReference"/>
        <association xmi:idref="Alf-A_element_externalElementReference"/>
      </ownedEnd>
      <name>A_element_externalElementReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_element_internalElementReference" xmi:uuid="725A27D7-D3DC-4530-98AF-74F806DE4CD0" 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="725A27D7-D3DC-4435-9E34-74F894E1BDFC" xmi:type="uml:Property">
        <name>internalElementReference</name>
        <type xmi:idref="Alf-InternalElementReference"/>
        <association xmi:idref="Alf-A_element_internalElementReference"/>
      </ownedEnd>
      <name>A_element_internalElementReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_type_assignedSource" xmi:uuid="725A27D7-D3DC-466F-97B2-74F808A0A8F5" 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="725A27D7-D3DC-4CDC-99F1-74F85F50A18A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_type_assignedSource-assignedSource-lowerValue" xmi:uuid="725A27D7-D3DC-4C6A-998E-74F80352DFF9" xmi:type="uml:LiteralInteger"/>
        <name>assignedSource</name>
        <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="725A27D7-D3DC-45F3-9DA1-74F80A3A81AA" 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="725A27D7-D3DC-4838-9306-74F8646DD36D" xmi:type="uml:Property">
        <name>assignedSource</name>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_source_assignedSource"/>
      </ownedEnd>
      <name>A_source_assignedSource</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceExpansionExpression" xmi:uuid="725A27D7-D3DC-45DD-98D7-74F85952156C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceExpansionExpression-ownedComment" xmi:uuid="725A27D7-D3DC-41FF-916A-74F8D3C16128" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <body>An expression used to carry out one of a predefined set of operations over each of the elements in a sequence. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation" xmi:uuid="725A27D7-D3DC-4327-9F72-74F8AE7C83C8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4141-944A-74F85AC9FE56" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableSourceDerivation-specification" xmi:uuid="725A27D7-D3DC-41E7-989B-74F898164D0F" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpansionExpressionVariableSourceDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary" xmi:uuid="725A27D7-D3DC-407F-9B6C-74F80B1729CC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary-ownedComment" xmi:uuid="725A27D7-D3DC-42B3-9CA5-74F8769F6AAE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary"/>
          <body>The assignments before the primary expression of a sequence expansion expression are the same as the assignments before the sequence expansion expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforePrimary-specification" xmi:uuid="725A27D7-D3DC-4CAA-9307-74F87D83215B" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpansionExpressionAssignmentsBeforePrimary</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument" xmi:uuid="725A27D7-D3DC-4696-9769-74F8DA5B58F3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument-ownedComment" xmi:uuid="725A27D7-D3DC-408C-9E0C-74F8D3417BD8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsBeforeArgument-specification" xmi:uuid="725A27D7-D3DC-4A33-9673-74F8E6128A0D" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpansionExpressionAssignmentsBeforeArgument</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName" xmi:uuid="725A27D7-D3DC-442D-987B-74F8063AB056" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName-ownedComment" xmi:uuid="725A27D7-D3DC-4467-9C48-74F8A762FFB2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName"/>
          <body>The expansion variable name may not conflict with any name already assigned after the primary expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionVariableName-specification" xmi:uuid="725A27D7-D3DC-4361-98CE-74F8EF7C8F6D" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpansionExpressionVariableName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument" xmi:uuid="725A27D7-D3DC-4B40-9FA5-74F8D044C1F8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpansionExpression"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument-ownedComment" xmi:uuid="725A27D7-D3DC-4443-9C5E-74F8FE2CA9A5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument"/>
          <body>The assignments after the argument expression of a sequence expansion expression must be the same as the assignments before the argument expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpansionExpression-sequenceExpansionExpressionAssignmentsAfterArgument-specification" xmi:uuid="725A27D7-D3DC-4FE0-9D43-74F83949A879" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpansionExpressionAssignmentsAfterArgument</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceExpansionExpression-generalization" xmi:uuid="725A27D7-D3DC-4D94-9E17-74F8F150AD04" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-operation" xmi:uuid="725A27D7-D3DC-412F-9FF9-74F8C93BAECD" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-operation-ownedComment" xmi:uuid="725A27D7-D3DC-4150-9106-74F88B2C07E7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-operation"/>
          <body>The name of the operation to be carried out. </body>
        </ownedComment>
        <name>operation</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-variable" xmi:uuid="725A27D7-D3DC-4A43-95A4-74F88B9D674C" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-variable-ownedComment" xmi:uuid="725A27D7-D3DC-41BF-905A-74F8F0C87749" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-variable"/>
          <body>The name of the expansion variable available as a local name within the argument expression. </body>
        </ownedComment>
        <name>variable</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-variableSource" xmi:uuid="725A27D7-D3DC-477A-9443-74F818815BA2" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-variableSource-ownedComment" xmi:uuid="725A27D7-D3DC-494D-9E15-74F8D99B97A2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-variableSource"/>
          <body>The assigned source for the expansion variable within the argument expression. The source is actually the sequence expansion expression itself. </body>
        </ownedComment>
        <name>variableSource</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_variableSource_sequenceExpansionExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-argument" xmi:uuid="725A27D7-D3DC-4972-9A40-74F8F2CDB9CD" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-argument-ownedComment" xmi:uuid="725A27D7-D3DC-40C7-9278-74F843E2168B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-argument"/>
          <body>The argument expression. The exact form required for this expression depends on which expansion operation is being carried out. </body>
        </ownedComment>
        <name>argument</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_argument_sequenceExpansionExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceExpansionExpression-primary" xmi:uuid="725A27D7-D3DC-488C-9E56-74F8B0525A8D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-primary-ownedComment" xmi:uuid="725A27D7-D3DC-4794-9FAC-74F82BF1F71F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-primary"/>
          <body>The class name or primary expression that evaluates to the sequence to be acted on. </body>
        </ownedComment>
        <name>primary</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-ExtentOrExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceExpansionExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-SequenceExpansionExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4F37-9AFF-74F89FBD45AB" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-SequenceExpansionExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4D16-90DE-74F8082566B7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpansionExpression-updateAssignments"/>
          <body>The assignments after a sequence expansion expression are the same as after its primary expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SequenceExpansionExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-458E-9B75-74F88FBBAEE0" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SequenceExpansionExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-44B7-9954-74F8EF65C885" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SequenceExpansionExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4E89-997C-74F875A0589C" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>SequenceExpansionExpression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-NamedTemplateBinding" xmi:uuid="725A27D7-D3DC-41CE-9A72-74F8954684DB" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NamedTemplateBinding-ownedComment" xmi:uuid="725A27D7-D3DC-49A3-9733-74F8AFEC9D70" 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="725A27D7-D3DC-411B-9ECD-74F8C57389D3" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-TemplateBinding"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NamedTemplateBinding-substitution" xmi:uuid="725A27D7-D3DC-447C-9305-74F8B38F32CC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamedTemplateBinding-substitution-ownedComment" xmi:uuid="725A27D7-D3DC-408D-9F5E-74F8E554B8CB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedTemplateBinding-substitution"/>
          <body>The substitutions of arguments for template parameters. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-NamedTemplateBinding-substitution-upperValue" xmi:uuid="725A27D7-D3DC-4C78-95AC-74F88C015448" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>substitution</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-TemplateParameterSubstitution"/>
        <association xmi:idref="Alf-A_substitution_namedTemplateBinding"/>
      </ownedAttribute>
      <name>NamedTemplateBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NumericUnaryExpression" xmi:uuid="725A27D7-D3DC-46C4-97EF-74F8A31877F9" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NumericUnaryExpression-ownedComment" xmi:uuid="725A27D7-D3DC-41E2-91F9-74F81A5180C7" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NumericUnaryExpression"/>
        <body>A unary expression with a numeric operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4158-9552-74F82C726F7B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
        <ownedComment xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-42EC-9DDA-74F89668D16B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation"/>
          <body>A numeric unary expression must have type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-46E2-98B0-74F865D107EF" xmi:type="uml:OpaqueExpression"/>
        <name>numericUnaryExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4D0F-9845-74F8FB68A018" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
        <ownedComment xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4FAB-95F0-74F8170DAB5E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation"/>
          <body>A numeric unary expression has the same multiplicity lower bound as its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4DD8-9DA2-74F850D10BCC" xmi:type="uml:OpaqueExpression"/>
        <name>numericUnaryExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-46B6-9DE7-74F87D2FAA21" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
        <ownedComment xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4544-9D56-74F826FFA5AF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation"/>
          <body>A numeric unary expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-46E3-982E-74F8ABEB5014" xmi:type="uml:OpaqueExpression"/>
        <name>numericUnaryExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionOperand" xmi:uuid="725A27D7-D3DC-4072-9BCD-74F89F60DF0B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NumericUnaryExpression"/>
        <ownedComment xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionOperand-ownedComment" xmi:uuid="725A27D7-D3DC-47EB-9F4F-74F8634F4384" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NumericUnaryExpression-numericUnaryExpressionOperand"/>
          <body>The operand expression must have type Integer and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-NumericUnaryExpression-numericUnaryExpressionOperand-specification" xmi:uuid="725A27D7-D3DC-4707-96DD-74F84576EEA7" xmi:type="uml:OpaqueExpression"/>
        <name>numericUnaryExpressionOperand</name>
      </ownedRule>
      <generalization xmi:id="Alf-NumericUnaryExpression-generalization" xmi:uuid="725A27D7-D3DC-4B50-9119-74F812E7A73D" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-UnaryExpression"/>
      </generalization>
      <name>NumericUnaryExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-FeatureReference" xmi:uuid="725A27D7-D3DC-425C-934F-74F8268D3C37" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-FeatureReference-ownedComment" xmi:uuid="725A27D7-D3DC-4138-9BE8-74F808483E4E" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-FeatureReference"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-FeatureReference-featureReferenceReferentDerivation" xmi:uuid="725A27D7-D3DC-4BB1-9214-74F8B4ABF09D" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureReference"/>
        <ownedComment xmi:id="Alf-FeatureReference-featureReferenceReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4DAA-9FC7-74F84B1B5F4C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureReference-featureReferenceReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureReference-featureReferenceReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4FDC-92AA-74F85142E142" xmi:type="uml:OpaqueExpression"/>
        <name>featureReferenceReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureReference-featureReferenceTargetType" xmi:uuid="725A27D7-D3DC-479F-9765-74F8536B3000" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureReference"/>
        <ownedComment xmi:id="Alf-FeatureReference-featureReferenceTargetType-ownedComment" xmi:uuid="725A27D7-D3DC-45E4-92D7-74F8BF107F21" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureReference-featureReferenceTargetType"/>
          <body>The target expression of the feature reference may not be untyped, nor may it have a primitive or enumeration type. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureReference-featureReferenceTargetType-specification" xmi:uuid="725A27D7-D3DC-4506-9D25-74F84C943907" xmi:type="uml:OpaqueExpression"/>
        <name>featureReferenceTargetType</name>
      </ownedRule>
      <generalization xmi:id="Alf-FeatureReference-generalization" xmi:uuid="725A27D7-D3DC-449C-9B9E-74F800F715DA" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-FeatureReference-expression" xmi:uuid="725A27D7-D3DC-4C34-90A9-74F80633BBA9" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-FeatureReference-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4353-9D5F-74F8B56B36F0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureReference-expression"/>
          <body>The target expression. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_featureReference"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-FeatureReference-referent" xmi:uuid="725A27D7-D3DC-4F3D-989B-74F82176CCC3" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-FeatureReference-referent-ownedComment" xmi:uuid="725A27D7-D3DC-4567-9196-74F8CE68B621" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureReference-referent"/>
          <body>The features referenced by this feature reference. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-FeatureReference-referent-lowerValue" xmi:uuid="725A27D7-D3DC-492A-9AD1-74F8923257EB" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-FeatureReference-referent-upperValue" xmi:uuid="725A27D7-D3DC-42A9-93B9-74F856F1E81C" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_featureReference"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-FeatureReference-nameBinding" xmi:uuid="725A27D7-D3DC-43AD-9E0E-74F875188567" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-FeatureReference-nameBinding-ownedComment" xmi:uuid="725A27D7-D3DC-434E-99CA-74F873BEBF06" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureReference-nameBinding"/>
          <body>The name of the feature. </body>
        </ownedComment>
        <name>nameBinding</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-NameBinding"/>
        <association xmi:idref="Alf-A_nameBinding_featureReference"/>
      </ownedAttribute>
      <name>FeatureReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-TemplateParameterSubstitution" xmi:uuid="725A27D7-D3DC-4930-9657-74F887C46813" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-TemplateParameterSubstitution-ownedComment" xmi:uuid="725A27D7-D3DC-4FEC-9BB5-74F80589A08F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution"/>
        <body>A specification of the substitution of an argument type name for a template parameter. </body>
      </ownedComment>
      <generalization xmi:id="Alf-TemplateParameterSubstitution-generalization" xmi:uuid="725A27D7-D3DC-4FE8-9B67-74F841D58580" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-TemplateParameterSubstitution-parameterName" xmi:uuid="725A27D7-D3DC-46A8-9635-74F891BE70D4" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TemplateParameterSubstitution-parameterName-ownedComment" xmi:uuid="725A27D7-D3DC-41A2-9063-74F810313EEE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution-parameterName"/>
          <body>The name of the template parameter. </body>
        </ownedComment>
        <name>parameterName</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TemplateParameterSubstitution-argumentName" xmi:uuid="725A27D7-D3DC-414C-9A76-74F8F779F9D9" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-TemplateParameterSubstitution-argumentName-ownedComment" xmi:uuid="725A27D7-D3DC-4619-984C-74F8998F1D4D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TemplateParameterSubstitution-argumentName"/>
          <body>The name of the argument type. </body>
        </ownedComment>
        <name>argumentName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_argumentName_templateParameterSubstitution"/>
      </ownedAttribute>
      <name>TemplateParameterSubstitution</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ForAllOrExistsOrOneExpression" xmi:uuid="725A27D7-D3DC-44E2-94B0-74F83FB7A883" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4272-9A96-74F8A5ECA840" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
        <body>A sequence expansion expression with a forAll, exists or one operation. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-40A8-9347-74F8F9B94C75" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
        <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BCA-91F0-74F85D1B2505" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation"/>
          <body>A forAll, exists or one expression has the type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-418A-9358-74F820ABE429" xmi:type="uml:OpaqueExpression"/>
        <name>forAllOrExistsOrOneExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4FA8-90CF-74F86D4E7EAE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
        <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-494C-9ED4-74F8D0BC08C9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation"/>
          <body>A forAll, exists or one expression has a multiplicity lower bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4737-92FE-74F8B0590C5F" xmi:type="uml:OpaqueExpression"/>
        <name>forAllOrExistsOrOneExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4107-9A8F-74F871BAA731" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
        <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4FC3-9719-74F8B22207BF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation"/>
          <body>A forAll, exists or one expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-407E-9E5C-74F82B81900B" xmi:type="uml:OpaqueExpression"/>
        <name>forAllOrExistsOrOneExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument" xmi:uuid="725A27D7-D3DC-4AD4-9F8B-74F8E89033C4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression"/>
        <ownedComment xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument-ownedComment" xmi:uuid="725A27D7-D3DC-4A10-9B90-74F888E5CF85" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument"/>
          <body>The argument of a forAll, exists or one expression must have type Boolean and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForAllOrExistsOrOneExpression-forAllOrExistsOrOneExpressionArgument-specification" xmi:uuid="725A27D7-D3DC-4E64-9579-74F8061675B9" xmi:type="uml:OpaqueExpression"/>
        <name>forAllOrExistsOrOneExpressionArgument</name>
      </ownedRule>
      <generalization xmi:id="Alf-ForAllOrExistsOrOneExpression-generalization" xmi:uuid="725A27D7-D3DC-4A5D-94E2-74F88CCE2A5B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceExpansionExpression"/>
      </generalization>
      <name>ForAllOrExistsOrOneExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-IsolationExpression" xmi:uuid="725A27D7-D3DC-4204-93ED-74F8A13F53C5" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-IsolationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-485C-9240-74F85E39ACC6" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-IsolationExpression"/>
        <body>An expression used to evaluate its operand expression in isolation. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4124-94FF-74F83DF5FD6A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsolationExpression"/>
        <ownedComment xmi:id="Alf-IsolationExpression-isolationExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4918-930B-74F8B4AF5F35" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsolationExpression-isolationExpressionTypeDerivation"/>
          <body>An isolation expression has the type of its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsolationExpression-isolationExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4616-9FEF-74F819916933" xmi:type="uml:OpaqueExpression"/>
        <name>isolationExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4697-926E-74F84BA78502" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsolationExpression"/>
        <ownedComment xmi:id="Alf-IsolationExpression-isolationExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C1B-94C8-74F83A7952ED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsolationExpression-isolationExpressionLowerDerivation"/>
          <body>An isolation expression has the multiplicity lower bound of its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsolationExpression-isolationExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4E9F-9308-74F8252E183F" xmi:type="uml:OpaqueExpression"/>
        <name>isolationExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IsolationExpression-isolationExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-40AC-9D0F-74F8ABECC776" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsolationExpression"/>
        <ownedComment xmi:id="Alf-IsolationExpression-isolationExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48D8-9F3A-74F8258BF5A3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsolationExpression-isolationExpressionUpperDerivation"/>
          <body>An isolation expression has the multiplicity upper bound of its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsolationExpression-isolationExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4FEB-92CB-74F813A09227" xmi:type="uml:OpaqueExpression"/>
        <name>isolationExpressionUpperDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-IsolationExpression-generalization" xmi:uuid="725A27D7-D3DC-4152-9119-74F8A08B2196" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-UnaryExpression"/>
      </generalization>
      <name>IsolationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-TemplateBinding" xmi:uuid="725A27D7-D3DC-460B-9A87-74F833B12383" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-TemplateBinding-ownedComment" xmi:uuid="725A27D7-D3DC-4CAD-96E6-74F8081D749B" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-TemplateBinding"/>
        <body>A list of type names used to provide arguments for the parameters of a template. </body>
      </ownedComment>
      <generalization xmi:id="Alf-TemplateBinding-generalization" xmi:uuid="725A27D7-D3DC-4578-91B1-74F853F68B1A" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <name>TemplateBinding</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-BinaryExpression" xmi:uuid="725A27D7-D3DC-4B11-96CF-74F8193C14EA" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BinaryExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4819-90B1-74F805BA545F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BinaryExpression"/>
        <body>An expression consisting of an operator acting on two operand expressions. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BinaryExpression-binaryExpressionOperandMultiplicity" xmi:uuid="725A27D7-D3DC-4046-929D-74F8B17745FC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BinaryExpression"/>
        <ownedComment xmi:id="Alf-BinaryExpression-binaryExpressionOperandMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-498E-967F-74F870C8DF1D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-binaryExpressionOperandMultiplicity"/>
          <body>The operands of a binary expression must both have a multiplicity upper bound no greater than 1. If null arguments are not allowed (as given by the noNullArguments helper operation), then the upper bounds must be exactly 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-BinaryExpression-binaryExpressionOperandMultiplicity-specification" xmi:uuid="725A27D7-D3DC-487A-9F45-74F8D8878A42" xmi:type="uml:OpaqueExpression"/>
        <name>binaryExpressionOperandMultiplicity</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BinaryExpression-binaryExpressionOperandAssignments" xmi:uuid="725A27D7-D3DC-467F-92C1-74F8EEF62E1B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BinaryExpression"/>
        <ownedComment xmi:id="Alf-BinaryExpression-binaryExpressionOperandAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-435A-9F06-74F8658AD528" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-binaryExpressionOperandAssignments"/>
          <body>The assignments in the operand expressions of a binary expression must be valid (as determined by the validateAssignments helper operation). </body>
        </ownedComment>
        <specification xmi:id="Alf-BinaryExpression-binaryExpressionOperandAssignments-specification" xmi:uuid="725A27D7-D3DC-4E9B-92B9-74F8DAD44F80" xmi:type="uml:OpaqueExpression"/>
        <name>binaryExpressionOperandAssignments</name>
      </ownedRule>
      <generalization xmi:id="Alf-BinaryExpression-generalization" xmi:uuid="725A27D7-D3DC-4CA6-9D4F-74F899C27C59" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BinaryExpression-operand1" xmi:uuid="725A27D7-D3DC-49C6-9C45-74F8BD0A3993" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-BinaryExpression-operand1-ownedComment" xmi:uuid="725A27D7-D3DC-42AF-924C-74F831B50106" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-operand1"/>
          <body>The expression giving the first operand. </body>
        </ownedComment>
        <name>operand1</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_binaryExpression_operand1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-BinaryExpression-operand2" xmi:uuid="725A27D7-D3DC-400D-9D3E-74F82DBB9A40" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-BinaryExpression-operand2-ownedComment" xmi:uuid="725A27D7-D3DC-494B-9A35-74F88D7F504C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-operand2"/>
          <body>The expression giving the second operand. </body>
        </ownedComment>
        <name>operand2</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_binaryExpression_operand2"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-BinaryExpression-operator" xmi:uuid="725A27D7-D3DC-428D-9853-74F848A60377" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-BinaryExpression-operator-ownedComment" xmi:uuid="725A27D7-D3DC-4418-9AD3-74F8D5B90A77" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-operator"/>
          <body>The symbol representing the operator. </body>
        </ownedComment>
        <name>operator</name>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-BinaryExpression-validateAssignments" xmi:uuid="725A27D7-D3DC-4786-94CE-74F86012654C" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-BinaryExpression-validateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-49FA-9649-74F85D36268E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-validateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-BinaryExpression-validateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-475C-99E7-74F8E9CEF892" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>validateAssignments</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-BinaryExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4AEB-94E4-74F82ABCB54E" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-BinaryExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-420E-98AE-74F84F41A320" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-BinaryExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-406B-999C-74F8504E8A41" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-BinaryExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4207-995B-74F8D530A74B" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-BinaryExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4C30-96EF-74F85A8243A1" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-BinaryExpression-noNullArguments" xmi:uuid="725A27D7-D3DC-4A56-9C4D-74F801390D39" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-BinaryExpression-noNullArguments-ownedComment" xmi:uuid="725A27D7-D3DC-4531-97D3-74F8753F1F4E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BinaryExpression-noNullArguments"/>
          <body>By default, null arguments are not allowed for binary expressions. (This is overridden for equality expressions.)</body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-BinaryExpression-noNullArguments-ownedParameter" xmi:uuid="725A27D7-D3DC-4378-9113-74F8A8B5DAA0" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>noNullArguments</name>
      </ownedOperation>
      <name>BinaryExpression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-BooleanUnaryExpression" xmi:uuid="725A27D7-D3DC-4440-9962-74F83DE5FA5A" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BooleanUnaryExpression-ownedComment" xmi:uuid="725A27D7-D3DC-43EE-956B-74F893C1A703" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <body>A unary expression with a Boolean operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4B65-9ACD-74F8A4E26F26" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4628-908D-74F8D5490B7C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation"/>
          <body>A Boolean unary expression has type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4269-9BED-74F8AF82BD5F" xmi:type="uml:OpaqueExpression"/>
        <name>booleanUnaryExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-43CF-94FD-74F830A3D924" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-402D-921E-74F8AC8D2C9E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation"/>
          <body>A Boolean unary expression has the same multiplicity lower bound as its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4C40-9E85-74F8C1B29503" xmi:type="uml:OpaqueExpression"/>
        <name>booleanUnaryExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-43E3-956A-74F8B40B8F85" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4283-9E80-74F8BF48195A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation"/>
          <body>A Boolean unary expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4C43-9A4B-74F8D8C3101E" xmi:type="uml:OpaqueExpression"/>
        <name>booleanUnaryExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand" xmi:uuid="725A27D7-D3DC-4040-92C8-74F85909D802" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand-ownedComment" xmi:uuid="725A27D7-D3DC-477B-9BB8-74F861537D55" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand"/>
          <body>The operand expression of a Boolean unary expression must have type Boolean and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-BooleanUnaryExpression-booleanUnaryExpressionOperand-specification" xmi:uuid="725A27D7-D3DC-4AF2-9212-74F80DD99D45" xmi:type="uml:OpaqueExpression"/>
        <name>booleanUnaryExpressionOperand</name>
      </ownedRule>
      <generalization xmi:id="Alf-BooleanUnaryExpression-generalization" xmi:uuid="725A27D7-D3DC-4238-9B89-74F8CD2AE7F0" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-UnaryExpression"/>
      </generalization>
      <name>BooleanUnaryExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-CastExpression" xmi:uuid="725A27D7-D3DC-49E7-9EB3-74F805116712" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-CastExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4574-96DD-74F821F2F0CF" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-CastExpression"/>
        <body>An expression used to filter values by type. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-CastExpression-castExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-49FD-99D3-74F8B41C436A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CastExpression"/>
        <ownedComment xmi:id="Alf-CastExpression-castExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4262-9D79-74F8922D9FF1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-castExpressionTypeDerivation"/>
          <body>The type of a cast expression is the referent of the given type name (if there is one). </body>
        </ownedComment>
        <specification xmi:id="Alf-CastExpression-castExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-479F-9269-74F8D6BC8456" xmi:type="uml:OpaqueExpression"/>
        <name>castExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CastExpression-castExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-47F3-9013-74F8C750D86C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CastExpression"/>
        <ownedComment xmi:id="Alf-CastExpression-castExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4623-99C4-74F8D3F87ADE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-castExpressionLowerDerivation"/>
          <body>A cast expression has a multiplicity lower bound of 0. </body>
        </ownedComment>
        <specification xmi:id="Alf-CastExpression-castExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-480C-95CD-74F84A6F687F" xmi:type="uml:OpaqueExpression"/>
        <name>castExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CastExpression-castExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4181-93C9-74F8B4466CAF" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CastExpression"/>
        <ownedComment xmi:id="Alf-CastExpression-castExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4530-9144-74F8C0800A67" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-castExpressionUpperDerivation"/>
          <body>A cast expression has a multiplicity upper bound that is the same as the upper bound of its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-CastExpression-castExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-40C0-9576-74F84B4773AB" xmi:type="uml:OpaqueExpression"/>
        <name>castExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CastExpression-castExpressionTypeResolution" xmi:uuid="725A27D7-D3DC-402B-9185-74F8859DE835" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CastExpression"/>
        <ownedComment xmi:id="Alf-CastExpression-castExpressionTypeResolution-ownedComment" xmi:uuid="725A27D7-D3DC-4307-983A-74F862E1E395" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-castExpressionTypeResolution"/>
          <body>If the cast expression has a type name, then it must resolve to a non-template classifier. </body>
        </ownedComment>
        <specification xmi:id="Alf-CastExpression-castExpressionTypeResolution-specification" xmi:uuid="725A27D7-D3DC-4940-9B42-74F89C0F4034" xmi:type="uml:OpaqueExpression"/>
        <name>castExpressionTypeResolution</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CastExpression-castExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-488A-96BF-74F88EA2AC0F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CastExpression"/>
        <ownedComment xmi:id="Alf-CastExpression-castExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-478C-9100-74F8955CCA93" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-castExpressionAssignmentsBefore"/>
          <body>The assignments before the operand of a cast expression are the same as those before the cast expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-CastExpression-castExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4FE5-9F3D-74F83C7CDDA6" xmi:type="uml:OpaqueExpression"/>
        <name>castExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-CastExpression-generalization" xmi:uuid="725A27D7-D3DC-42AB-9351-74F85ED29570" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-CastExpression-operand" xmi:uuid="725A27D7-D3DC-45AE-9170-74F823157955" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-CastExpression-operand-ownedComment" xmi:uuid="725A27D7-D3DC-4F72-9AD4-74F864049250" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-operand"/>
          <body>The operand expression of the cast expression. </body>
        </ownedComment>
        <name>operand</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_operand_castExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-CastExpression-typeName" xmi:uuid="725A27D7-D3DC-41B4-9D03-74F869A28D59" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-CastExpression-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-4454-9CE5-74F85ECEB3AE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-typeName"/>
          <body>The named type of the cast expression (if any) </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-CastExpression-typeName-lowerValue" xmi:uuid="725A27D7-D3DC-4EEA-92BE-74F85EF4C3EF" xmi:type="uml:LiteralInteger"/>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_castExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-CastExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4384-9A3D-74F8CCD68B26" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-CastExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4D45-9F35-74F80B89F0F9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CastExpression-updateAssignments"/>
          <body>The assignments after a cast expression are the same as those after its operand expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-CastExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4E34-9E8E-74F85E95C9F0" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-CastExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4A1D-97B0-74F86BA92F96" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-CastExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4F4B-9C4A-74F8EB9755AB" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>CastExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-PositionalTuple" xmi:uuid="725A27D7-D3DC-44E3-9EE7-74F8F3DAD484" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PositionalTuple-ownedComment" xmi:uuid="725A27D7-D3DC-4EA3-90C5-74F829ECEC82" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PositionalTuple"/>
        <body>A tuple in which the arguments are matched to parameters in order by position. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-PositionalTuple-positionalTupleArguments" xmi:uuid="725A27D7-D3DC-4546-9728-74F8923F1187" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PositionalTuple"/>
        <ownedComment xmi:id="Alf-PositionalTuple-positionalTupleArguments-ownedComment" xmi:uuid="725A27D7-D3DC-4E66-9AC9-74F886E4AB8D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PositionalTuple-positionalTupleArguments"/>
          <body>A positional tuple must not have more arguments than the invocation it is for has parameters. </body>
        </ownedComment>
        <specification xmi:id="Alf-PositionalTuple-positionalTupleArguments-specification" xmi:uuid="725A27D7-D3DC-433A-9FF2-74F8299DBA21" xmi:type="uml:OpaqueExpression"/>
        <name>positionalTupleArguments</name>
      </ownedRule>
      <generalization xmi:id="Alf-PositionalTuple-generalization" xmi:uuid="725A27D7-D3DC-42A3-9E8A-74F8840391E8" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Tuple"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-PositionalTuple-expression" xmi:uuid="725A27D7-D3DC-4302-98D8-74F86F4C3B88" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-PositionalTuple-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4CDB-9EBB-74F8BE0A4804" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PositionalTuple-expression"/>
          <body>The argument expressions for this tuple, to be matched by position to the invocation parameters. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-PositionalTuple-expression-lowerValue" xmi:uuid="725A27D7-D3DC-4A00-9795-74F82A4DE8A3" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-PositionalTuple-expression-upperValue" xmi:uuid="725A27D7-D3DC-40FB-9AC6-74F84B7A0271" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>expression</name>
        <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-SequenceAccessExpression" xmi:uuid="725A27D7-D3DC-4974-9005-74F8501FC133" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceAccessExpression-ownedComment" xmi:uuid="725A27D7-D3DC-43E3-9151-74F816E55AB4" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <body>An expression used to access a specific element of a sequence. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4F73-9872-74F850A29927" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <ownedComment xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4AF7-911B-74F8A56BD8E7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation"/>
          <body>The type of a sequence access expression is the same as the type of its primary expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4314-9991-74F824BF71C2" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceAccessExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-45D3-9556-74F8DF6F709C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <ownedComment xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-43AB-99DE-74F863E24EAC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation"/>
          <body>The multiplicity lower bound of a sequence access expression is 0. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-40F1-9794-74F8C71CBF65" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceAccessExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-477E-94F6-74F83667E981" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <ownedComment xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-487C-9ED1-74F8A6968BEC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation"/>
          <body>The multiplicity upper bound of a sequence access expression is 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-426B-92D2-74F878454490" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceAccessExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType" xmi:uuid="725A27D7-D3DC-40C6-9FBD-74F876F76B40" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <ownedComment xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType-ownedComment" xmi:uuid="725A27D7-D3DC-4EE9-983E-74F8A691BBB9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType"/>
          <body>The type of the index of a sequence access expression must be Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexType-specification" xmi:uuid="725A27D7-D3DC-4068-9061-74F8683FF783" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceAccessExpressionIndexType</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity" xmi:uuid="725A27D7-D3DC-4D4D-9CFF-74F89F9C39CD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceAccessExpression"/>
        <ownedComment xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-4AD6-969F-74F883D1DADD" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity"/>
          <body>The multiplicity upper bound of the index of a sequence access expression must be 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceAccessExpression-sequenceAccessExpressionIndexMultiplicity-specification" xmi:uuid="725A27D7-D3DC-4DA9-97C8-74F818B5A1E1" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceAccessExpressionIndexMultiplicity</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceAccessExpression-generalization" xmi:uuid="725A27D7-D3DC-4CA6-9383-74F8585CB87C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceAccessExpression-primary" xmi:uuid="725A27D7-D3DC-4F86-916D-74F83F53D5BE" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceAccessExpression-primary-ownedComment" xmi:uuid="725A27D7-D3DC-481A-9977-74F8B813A72D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-primary"/>
          <body>The expression whose value is the sequence being accessed. </body>
        </ownedComment>
        <name>primary</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_primary_sequenceAccessExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceAccessExpression-index" xmi:uuid="725A27D7-D3DC-4C9A-9C14-74F80525626A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceAccessExpression-index-ownedComment" xmi:uuid="725A27D7-D3DC-448F-9AC8-74F87369729F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceAccessExpression-index"/>
          <body>The expression whose value is the index of the element being accessed in the sequence. </body>
        </ownedComment>
        <name>index</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_index_sequenceAccessExpression"/>
      </ownedAttribute>
      <name>SequenceAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Expression" xmi:uuid="725A27D7-D3DC-4394-990A-74F877B1CB77" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Expression-ownedComment" xmi:uuid="725A27D7-D3DC-4F6E-9A42-74F89D80725A" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Expression"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-Expression-expressionAssignmentAfterDerivation" xmi:uuid="725A27D7-D3DC-400C-961E-74F81C9B87D7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Expression"/>
        <ownedComment xmi:id="Alf-Expression-expressionAssignmentAfterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4413-9670-74F85D3D64D8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-expressionAssignmentAfterDerivation"/>
          <body>The assignments after an expression are given by the result of the updateAssignments helper operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-Expression-expressionAssignmentAfterDerivation-specification" xmi:uuid="725A27D7-D3DC-4BBD-9679-74F84CADD4F0" xmi:type="uml:OpaqueExpression"/>
        <name>expressionAssignmentAfterDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Expression-expressionUniqueAssignments" xmi:uuid="725A27D7-D3DC-43A3-99E0-74F8B9EB7095" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Expression"/>
        <ownedComment xmi:id="Alf-Expression-expressionUniqueAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4670-942C-74F83007A60D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-expressionUniqueAssignments"/>
          <body>No name may be assigned more than once before or after an expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-Expression-expressionUniqueAssignments-specification" xmi:uuid="725A27D7-D3DC-45A3-95C6-74F80C1607D6" xmi:type="uml:OpaqueExpression"/>
        <name>expressionUniqueAssignments</name>
      </ownedRule>
      <generalization xmi:id="Alf-Expression-generalization" xmi:uuid="725A27D7-D3DC-45A7-9867-74F8F90F8798" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Expression-assignmentBefore" xmi:uuid="725A27D7-D3DC-44C6-9E92-74F882133D2C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Expression-assignmentBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4807-9892-74F82D6B8D1A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-assignmentBefore"/>
          <body>The assigned sources for local names available lexically before this expression. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Expression-assignmentBefore-lowerValue" xmi:uuid="725A27D7-D3DC-4510-971B-74F8BAD6F284" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Expression-assignmentBefore-upperValue" xmi:uuid="725A27D7-D3DC-4EEE-98B9-74F87475A06B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentBefore</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentBefore_expression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Expression-assignmentAfter" xmi:uuid="725A27D7-D3DC-4823-92A4-74F8A8720EB3" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Expression-assignmentAfter-ownedComment" xmi:uuid="725A27D7-D3DC-42C6-9FF6-74F827A82F08" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-assignmentAfter"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Expression-assignmentAfter-lowerValue" xmi:uuid="725A27D7-D3DC-497B-96BA-74F8EB9EFE27" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Expression-assignmentAfter-upperValue" xmi:uuid="725A27D7-D3DC-4F1A-94E3-74F8BBCBCB80" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentAfter</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentAfter_expression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Expression-upper" xmi:uuid="725A27D7-D3DC-4D33-9209-74F80F737569" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"> </type>
        <ownedComment xmi:id="Alf-Expression-upper-ownedComment" xmi:uuid="725A27D7-D3DC-4B8D-9F8E-74F83C9A2205" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-upper"/>
          <body>The statically determined upper bound of the multiplicity of this expression.  </body>
        </ownedComment>
        <name>upper</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Expression-lower" xmi:uuid="725A27D7-D3DC-4292-9BFF-74F88ACD06F4" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"> </type>
        <ownedComment xmi:id="Alf-Expression-lower-ownedComment" xmi:uuid="725A27D7-D3DC-4645-9D15-74F8B5810F43" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-lower"/>
          <body>The statically determined lower bound of the multiplicity of this expression. </body>
        </ownedComment>
        <name>lower</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Expression-type" xmi:uuid="725A27D7-D3DC-46BD-9510-74F83848A783" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Expression-type-ownedComment" xmi:uuid="725A27D7-D3DC-4962-98C9-74F82096ABC7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-type"/>
          <body>A reference to the element that specifies the statically determined type for this expression (if any).  </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Expression-type-lowerValue" xmi:uuid="725A27D7-D3DC-4669-9B6F-74F8C9021421" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_type_expression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-Expression-updateAssignments" xmi:uuid="725A27D7-D3DC-4C98-912A-74F8510E79AF" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Expression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4930-97A9-74F896C8CEFE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Expression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Expression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-47B3-951A-74F8A0745963" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-Expression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-407A-9281-74F8227BF958" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-Expression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4FD1-9F52-74F80A95AD25" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>Expression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-StringLiteralExpression" xmi:uuid="725A27D7-D3DC-48AB-9B99-74F8EDEBC17D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-StringLiteralExpression-ownedComment" xmi:uuid="725A27D7-D3DC-425B-9297-74F893F0AB39" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-StringLiteralExpression"/>
        <body>An expression that comprises a String literal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-45EE-9B4D-74F8370FC741" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-StringLiteralExpression"/>
        <ownedComment xmi:id="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4928-996D-74F8D6227C7B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation"/>
          <body>The type of a string literal expression is String. </body>
        </ownedComment>
        <specification xmi:id="Alf-StringLiteralExpression-stringLiteralExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-47A6-913F-74F87AD39CE6" xmi:type="uml:OpaqueExpression"/>
        <name>stringLiteralExpressionTypeDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-StringLiteralExpression-generalization" xmi:uuid="725A27D7-D3DC-4401-9485-74F892AD5DBB" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LiteralExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-StringLiteralExpression-image" xmi:uuid="725A27D7-D3DC-4F69-9ABE-74F87ED70B24" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-StringLiteralExpression-image-ownedComment" xmi:uuid="725A27D7-D3DC-42E1-92AB-74F89334E15F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StringLiteralExpression-image"/>
          <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>
        </ownedComment>
        <name>image</name>
      </ownedAttribute>
      <name>StringLiteralExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceOperationExpression" xmi:uuid="725A27D7-D3DC-48C1-9EAE-74F86CE65A54" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceOperationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4084-95A6-74F8AF32CF51" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <body>An expression used to invoke a behavior as if it was an operation on a target sequence as a whole. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4725-9E9F-74F86C3B091B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BED-9D47-74F8D06BA1EC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation"/>
          <body>The referent for a sequence operation expression is the behavior named by the operation for the expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4509-9439-74F8D4832235" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-47ED-9EC9-74F82F93945A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41E9-9558-74F8B889C31D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation"/>
          <body>There is no feature for a sequence operation expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4C8A-90E6-74F8FBD1F272" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent" xmi:uuid="725A27D7-D3DC-492C-9BDC-74F80F8F355C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-493E-9AB2-74F85022864A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionOperationReferent-specification" xmi:uuid="725A27D7-D3DC-43D8-97DD-74F8DA996C74" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionOperationReferent</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility" xmi:uuid="725A27D7-D3DC-42AD-97C5-74F812ACCCA7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility-ownedComment" xmi:uuid="725A27D7-D3DC-4039-97D3-74F8057EDF35" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility"/>
          <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. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionTargetCompatibility-specification" xmi:uuid="725A27D7-D3DC-428A-96A0-74F8D04F87DA" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionTargetCompatibility</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility" xmi:uuid="725A27D7-D3DC-4FB7-9C97-74F88E705EE4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility-ownedComment" xmi:uuid="725A27D7-D3DC-405D-98E5-74F8B847E277" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionArgumentCompatibility-specification" xmi:uuid="725A27D7-D3DC-4C78-9F51-74F88BC69FF4" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionArgumentCompatibility</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-45FC-95B3-74F8CC04F472" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-42CA-9835-74F895901153" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore"/>
          <body>The assignments before the primary expression of a sequence operation expression are the same as the assignments before the sequence operation expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-40AA-9F91-74F8164EB511" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation" xmi:uuid="725A27D7-D3DC-4948-98FF-74F8C5DB4143" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4E26-9FE3-74F88B973854" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsCollectionConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4194-9DBF-74F8D043E0B0" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionIsCollectionConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-4F47-97FC-74F835E21AA7" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4E6B-9398-74F80D4B0871" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation"/>
          <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 argument type is Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4356-966C-74F82C73011B" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionIsBitStringConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4EFF-9AA7-74F8318D64C6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4B18-937F-74F831D06E2D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-43A1-9818-74F834D0C82E" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation" xmi:uuid="725A27D7-D3DC-456B-9AC3-74F88696BDBC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceOperationExpression"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BFB-93F8-74F8BA857909" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceOperationExpression-sequenceOperationExpressionLeftHandSideDerivation-specification" xmi:uuid="725A27D7-D3DC-481E-99BC-74F893145734" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceOperationExpressionLeftHandSideDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceOperationExpression-generalization" xmi:uuid="725A27D7-D3DC-41CB-9522-74F8CAF27AA9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceOperationExpression-primary" xmi:uuid="725A27D7-D3DC-4D44-9D1E-74F8D61DFCA2" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceOperationExpression-primary-ownedComment" xmi:uuid="725A27D7-D3DC-438A-9252-74F85367554E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-primary"/>
          <body>The expression or class name whose value is gives the sequence to be operated on. </body>
        </ownedComment>
        <name>primary</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-ExtentOrExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceOperationExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceOperationExpression-operation" xmi:uuid="725A27D7-D3DC-4668-9F77-74F84A68D9BC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceOperationExpression-operation-ownedComment" xmi:uuid="725A27D7-D3DC-4D2C-9F1F-74F8487AC01C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-operation"/>
          <body>The qualified name of the behavior being invoked. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SequenceOperationExpression-operation-lowerValue" xmi:uuid="725A27D7-D3DC-4208-9E8E-74F8841DA565" xmi:type="uml:LiteralInteger"/>
        <name>operation</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_operation_sequenceOperationExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceOperationExpression-isCollectionConversion" xmi:uuid="725A27D7-D3DC-4926-9DE5-74F80696F3B2" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-isCollectionConversion-ownedComment" xmi:uuid="725A27D7-D3DC-426A-9892-74F887EF2E31" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-isCollectionConversion"/>
          <body>Whether the primary expression requires collection conversion. </body>
        </ownedComment>
        <name>isCollectionConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceOperationExpression-isBitStringConversion" xmi:uuid="725A27D7-D3DC-4621-9B1C-74F89CC179E7" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-4784-9D7F-74F8707CD546" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-isBitStringConversion"/>
          <body>Whether type primary expression requires BitString conversion. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceOperationExpression-leftHandSide" xmi:uuid="725A27D7-D3DC-402E-9080-74F818297CCD" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceOperationExpression-leftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-45AF-935D-74F883346D1E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-leftHandSide"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-SequenceOperationExpression-leftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-4C54-970A-74F84A5FFC28" xmi:type="uml:LiteralInteger"/>
        <name>leftHandSide</name>
        <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="725A27D7-D3DC-4C79-92D7-74F8F03B5B45" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-408E-9B11-74F8AAF0A4A4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SequenceOperationExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-44F6-9A01-74F846206280" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SequenceOperationExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-46D4-9AD5-74F8D41A1528" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SequenceOperationExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-42AF-9B1E-74F8291ECB75" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-SequenceOperationExpression-parameterElements" xmi:uuid="725A27D7-D3DC-4F5E-9BEE-74F8CC8D0B07" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
        <ownedComment xmi:id="Alf-SequenceOperationExpression-parameterElements-ownedComment" xmi:uuid="725A27D7-D3DC-4878-9561-74F8AAEF0E73" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceOperationExpression-parameterElements"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SequenceOperationExpression-parameterElements-ownedParameter" xmi:uuid="725A27D7-D3DC-4912-9ADF-74F847E76D88" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SequenceOperationExpression-parameterElements-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-45A4-9703-74F88DAE81F2" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SequenceOperationExpression-parameterElements-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4B3D-9D1E-74F8B429D030" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-ElementReference"/>
        </ownedParameter>
        <name>parameterElements</name>
      </ownedOperation>
      <name>SequenceOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SelectOrRejectExpression" xmi:uuid="725A27D7-D3DC-487B-9F92-74F88F771FDE" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SelectOrRejectExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4175-9AFF-74F8E361CBD7" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SelectOrRejectExpression"/>
        <body>A sequence expansion expression with a select or reject operation. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-46C3-9189-74F823D0901C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
        <ownedComment xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-46B1-9338-74F80C86587D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation"/>
          <body>A select or reject expression has the same type as its primary expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4701-93E8-74F80469764E" xmi:type="uml:OpaqueExpression"/>
        <name>selectOrRejectExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-444B-9152-74F8A173427E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
        <ownedComment xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4864-9E25-74F8D37EAC4C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation"/>
          <body>A select or reject expression has a multiplicity lower bound of 0. </body>
        </ownedComment>
        <specification xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4E36-95E0-74F825A841E1" xmi:type="uml:OpaqueExpression"/>
        <name>selectOrRejectExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4BD5-963E-74F8F7F0429F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
        <ownedComment xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-416A-950A-74F8DDDB6C64" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation"/>
          <body>A select or reject expression has a multiplicity upper bound of *. </body>
        </ownedComment>
        <specification xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4853-90F5-74F885B07F2A" xmi:type="uml:OpaqueExpression"/>
        <name>selectOrRejectExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument" xmi:uuid="725A27D7-D3DC-4864-92B2-74F88F873F67" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SelectOrRejectExpression"/>
        <ownedComment xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument-ownedComment" xmi:uuid="725A27D7-D3DC-46C8-98A6-74F824395B56" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument"/>
          <body>The argument of a select or reject expression must have type Boolean and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SelectOrRejectExpression-selectOrRejectExpressionArgument-specification" xmi:uuid="725A27D7-D3DC-428E-9EB8-74F87F965B67" xmi:type="uml:OpaqueExpression"/>
        <name>selectOrRejectExpressionArgument</name>
      </ownedRule>
      <generalization xmi:id="Alf-SelectOrRejectExpression-generalization" xmi:uuid="725A27D7-D3DC-41E3-9F5A-74F85C7BAC6B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceExpansionExpression"/>
      </generalization>
      <name>SelectOrRejectExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassExtentExpression" xmi:uuid="725A27D7-D3DC-45C2-9CCE-74F899B009DC" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassExtentExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4BC0-9F7E-74F87097AB9C" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassExtentExpression"/>
        <body>An expression used to obtain the objects in the extent of a class. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4CB5-909F-74F8AC86FAB0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
        <ownedComment xmi:id="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B28-9DD9-74F88487F3E2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation"/>
          <body>The type of a class extent expression is the given class. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassExtentExpression-classExtentExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-43E0-9CDC-74F835CFC008" xmi:type="uml:OpaqueExpression"/>
        <name>classExtentExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-460E-9064-74F88EB88BA4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
        <ownedComment xmi:id="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B56-950A-74F8CB6471FE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation"/>
          <body>The multiplicity upper bound of a class expression is *. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassExtentExpression-classExtentExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4EFA-987E-74F826FF81BF" xmi:type="uml:OpaqueExpression"/>
        <name>classExtentExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4196-92CE-74F80EC43C1F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
        <ownedComment xmi:id="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D3B-9ECD-74F81F64E692" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation"/>
          <body>The multiplicity lower bound of a class extent expression is 0.  </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassExtentExpression-classExtentExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4500-9336-74F8437CAEB6" xmi:type="uml:OpaqueExpression"/>
        <name>classExtentExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassExtentExpression-classExtentExpressionExtentType" xmi:uuid="725A27D7-D3DC-47EF-95F9-74F8C890BA10" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassExtentExpression"/>
        <ownedComment xmi:id="Alf-ClassExtentExpression-classExtentExpressionExtentType-ownedComment" xmi:uuid="725A27D7-D3DC-4F6A-911C-74F885C92E56" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassExtentExpression-classExtentExpressionExtentType"/>
          <body>The given type name must resolve to a non-template class. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassExtentExpression-classExtentExpressionExtentType-specification" xmi:uuid="725A27D7-D3DC-4C96-9973-74F80BB97E64" xmi:type="uml:OpaqueExpression"/>
        <name>classExtentExpressionExtentType</name>
      </ownedRule>
      <generalization xmi:id="Alf-ClassExtentExpression-generalization" xmi:uuid="725A27D7-D3DC-45F7-9CE1-74F87A402CB9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ClassExtentExpression-className" xmi:uuid="725A27D7-D3DC-44AA-97E2-74F8216DA59F" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassExtentExpression-className-ownedComment" xmi:uuid="725A27D7-D3DC-49A0-9182-74F87BCB65C8" 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>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_className_classExtentExpression"/>
      </ownedAttribute>
      <name>ClassExtentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-PositionalTemplateBinding" xmi:uuid="725A27D7-D3DC-459A-9214-74F8C144FC48" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PositionalTemplateBinding-ownedComment" xmi:uuid="725A27D7-D3DC-44E9-93EB-74F899078CFA" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PositionalTemplateBinding"/>
        <body>A template binding in which the arguments are matched to formal template parameters in order by position. </body>
      </ownedComment>
      <generalization xmi:id="Alf-PositionalTemplateBinding-generalization" xmi:uuid="725A27D7-D3DC-4418-9329-74F8F7DC9B01" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-TemplateBinding"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-PositionalTemplateBinding-argumentName" xmi:uuid="725A27D7-D3DC-4294-99DF-74F8D2611D28" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-PositionalTemplateBinding-argumentName-ownedComment" xmi:uuid="725A27D7-D3DC-44EC-950A-74F8DD4C8C70" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PositionalTemplateBinding-argumentName"/>
          <body>The arguments for this template binding, to be matched by position to the template parameters. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-PositionalTemplateBinding-argumentName-upperValue" xmi:uuid="725A27D7-D3DC-4485-95FF-74F80A2B2467" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>argumentName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_argumentName_positionalTemplateBinding"/>
      </ownedAttribute>
      <name>PositionalTemplateBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ConditionalLogicalExpression" xmi:uuid="725A27D7-D3DC-4E5A-9484-74F82728C81F" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ConditionalLogicalExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4ABB-931C-74F8A6379A11" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-415B-93CC-74F8B1F703B0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4DC2-9A0B-74F8FFB47E5F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation"/>
          <body>A conditional logical expression has type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4C8D-959D-74F898175168" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalLogicalExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLower" xmi:uuid="725A27D7-D3DC-4DDE-9FBE-74F84FA7B63E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLower-ownedComment" xmi:uuid="725A27D7-D3DC-47CD-96E9-74F803760C3D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLower"/>
          <body>A conditional logical expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is 0 and 1 otherwise. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionLower-specification" xmi:uuid="725A27D7-D3DC-4CFC-9AB1-74F8A800F371" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalLogicalExpressionLower</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpper" xmi:uuid="725A27D7-D3DC-41BE-96B5-74F869D521AD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpper-ownedComment" xmi:uuid="725A27D7-D3DC-4E71-96B8-74F8E4B9EFB8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpper"/>
          <body>A conditional logical expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionUpper-specification" xmi:uuid="725A27D7-D3DC-4F59-9D6A-74F8FC37B7BF" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalLogicalExpressionUpper</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands" xmi:uuid="725A27D7-D3DC-4B73-963D-74F8AF964CD7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalLogicalExpression"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands-ownedComment" xmi:uuid="725A27D7-D3DC-4E20-9E31-74F8165552FB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands"/>
          <body>The operands of a conditional logical expression must have type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalLogicalExpression-conditionalLogicalExpressionOperands-specification" xmi:uuid="725A27D7-D3DC-4DB6-9414-74F834DEC644" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalLogicalExpressionOperands</name>
      </ownedRule>
      <generalization xmi:id="Alf-ConditionalLogicalExpression-generalization" xmi:uuid="725A27D7-D3DC-47FD-90BC-74F8AAAFC18F" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedOperation xmi:id="Alf-ConditionalLogicalExpression-validateAssignments" xmi:uuid="725A27D7-D3DC-4BA3-9C8A-74F84D4B4327" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-BinaryExpression-validateAssignments"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-validateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-47D7-97AE-74F808E75580" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-validateAssignments"/>
          <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. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ConditionalLogicalExpression-validateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4FFB-998B-74F89B0CC3BD" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>validateAssignments</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ConditionalLogicalExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-409A-922E-74F868E4ED74" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-BinaryExpression-updateAssignments"/>
        <ownedComment xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4D27-980B-74F84B457EE6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalLogicalExpression-updateAssignments"/>
          <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. If a name is unassigned before the second operand expression, then it is considered unassigned after the conditional logical expression, even if it has an assigned source after the second operand expression. Otherwise its assigned source after the conditional logical expression is the conditional logical expression itself. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-427D-98A9-74F829ACA654" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4C37-9486-74F895D5AE8E" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-ConditionalLogicalExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-404B-9730-74F8CA4006B5" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>ConditionalLogicalExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LinkOperationExpression" xmi:uuid="725A27D7-D3DC-4C04-991E-74F85E6BEE04" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LinkOperationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-462C-989C-74F8A3B62364" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LinkOperationExpression"/>
        <body>An expression used to create or destroy the links of an association. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation" xmi:uuid="725A27D7-D3DC-4337-9AEA-74F82357D0B0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-496F-9188-74F82F38B04B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation"/>
          <body>A link operation expression is for link creation if its operation is "createLink". </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsCreationDerivation-specification" xmi:uuid="725A27D7-D3DC-4653-9B29-74F836BDB107" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionIsCreationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation" xmi:uuid="725A27D7-D3DC-439C-9582-74F866AF888E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A33-963F-74F8702AFDDC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation"/>
          <body>A link operation expression is for clearing an association if the operation is "clearAssoc". </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionIsClearDerivation-specification" xmi:uuid="725A27D7-D3DC-4E1F-9E6B-74F8818D1CC2" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionIsClearDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4452-90C5-74F82E2BEB9D" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4265-9180-74F8D3757E60" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation"/>
          <body>The referent for a link operation expression is the named association. </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-493C-9573-74F81DF15C45" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-440F-98AE-74F81DF7FEBB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B24-946B-74F89D0EB551" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation"/>
          <body>There is no feature for a link operation expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-425E-9A18-74F825F34D72" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference" xmi:uuid="725A27D7-D3DC-43DD-9F50-74F829100B01" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference-ownedComment" xmi:uuid="725A27D7-D3DC-4A6B-90DA-74F858F37428" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference"/>
          <body>The qualified name of a link operation expression must resolve to a single association. </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionAssociationReference-specification" xmi:uuid="725A27D7-D3DC-427D-9436-74F8D98CC599" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionAssociationReference</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility" xmi:uuid="725A27D7-D3DC-4CBA-9512-74F83A92764F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LinkOperationExpression"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility-ownedComment" xmi:uuid="725A27D7-D3DC-4AF8-9F30-74F8B66517E2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility"/>
          <body>Each argument expression must be assignable to its corresponding expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-LinkOperationExpression-linkOperationExpressionArgumentCompatibility-specification" xmi:uuid="725A27D7-D3DC-4C72-9158-74F8997E5A1C" xmi:type="uml:OpaqueExpression"/>
        <name>linkOperationExpressionArgumentCompatibility</name>
      </ownedRule>
      <generalization xmi:id="Alf-LinkOperationExpression-generalization" xmi:uuid="725A27D7-D3DC-452F-9FA7-74F88145D8D6" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-LinkOperationExpression-operation" xmi:uuid="725A27D7-D3DC-443D-9E5B-74F8F54BB342" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-LinkOperationExpression-operation-ownedComment" xmi:uuid="725A27D7-D3DC-4582-9153-74F8F87C4E3C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-operation"/>
          <body>The name of the link operation. </body>
        </ownedComment>
        <name>operation</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LinkOperationExpression-isCreation" xmi:uuid="725A27D7-D3DC-4288-9370-74F82AE0006D" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LinkOperationExpression-isCreation-ownedComment" xmi:uuid="725A27D7-D3DC-42B6-9534-74F8C4442522" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-isCreation"/>
          <body>Whether the operation is for link creation. </body>
        </ownedComment>
        <name>isCreation</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LinkOperationExpression-isClear" xmi:uuid="725A27D7-D3DC-461F-9662-74F80F6DE99A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LinkOperationExpression-isClear-ownedComment" xmi:uuid="725A27D7-D3DC-4DD0-9E73-74F8D189BE57" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-isClear"/>
          <body>Whether the operation is clearing the association. </body>
        </ownedComment>
        <name>isClear</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LinkOperationExpression-associationName" xmi:uuid="725A27D7-D3DC-4723-95F0-74F8811834D2" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LinkOperationExpression-associationName-ownedComment" xmi:uuid="725A27D7-D3DC-4320-9301-74F8989D7364" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-associationName"/>
          <body>The qualified name of the association whose links are being acted on. </body>
        </ownedComment>
        <name>associationName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_associationName_linkOperationExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-LinkOperationExpression-parameterElements" xmi:uuid="725A27D7-D3DC-4509-93B5-74F8AC84D6EC" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
        <ownedComment xmi:id="Alf-LinkOperationExpression-parameterElements-ownedComment" xmi:uuid="725A27D7-D3DC-4AEA-918C-74F870917B33" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LinkOperationExpression-parameterElements"/>
          <body>For a clear association operation, returns a single, typeless parameter. Otherwise, returns the ends of the named association. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-LinkOperationExpression-parameterElements-ownedParameter" xmi:uuid="725A27D7-D3DC-4B72-9B91-74F8552A7D00" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-LinkOperationExpression-parameterElements-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4760-9316-74F820D1687B" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-LinkOperationExpression-parameterElements-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4D97-913D-74F8050002C9" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-ElementReference"/>
        </ownedParameter>
        <name>parameterElements</name>
      </ownedOperation>
      <name>LinkOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-EqualityExpression" xmi:uuid="725A27D7-D3DC-4C23-917D-74F88F33B364" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-EqualityExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4C33-962E-74F8B914AC3F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-EqualityExpression"/>
        <body>A binary expression that tests the equality of its operands. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation" xmi:uuid="725A27D7-D3DC-498A-9018-74F8ED168EE4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EqualityExpression"/>
        <ownedComment xmi:id="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B1E-9503-74F8DDB78C94" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation"/>
          <body>An equality expression is negated if its operator is "!=". </body>
        </ownedComment>
        <specification xmi:id="Alf-EqualityExpression-equalityExpressionIsNegatedDerivation-specification" xmi:uuid="725A27D7-D3DC-4F09-9FEB-74F86CAFB3FB" xmi:type="uml:OpaqueExpression"/>
        <name>equalityExpressionIsNegatedDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4681-939D-74F866153A96" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EqualityExpression"/>
        <ownedComment xmi:id="Alf-EqualityExpression-equalityExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CB1-95FA-74F81D8CF223" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-equalityExpressionTypeDerivation"/>
          <body>An equality expression has type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-EqualityExpression-equalityExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4D4F-9142-74F87A808C8B" xmi:type="uml:OpaqueExpression"/>
        <name>equalityExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-48BF-9121-74F8B618CED5" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EqualityExpression"/>
        <ownedComment xmi:id="Alf-EqualityExpression-equalityExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-47EF-96A4-74F8FF9E7095" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-equalityExpressionLowerDerivation"/>
          <body>An equality expression has a multiplicity lower bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-EqualityExpression-equalityExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-41C9-99CD-74F8BB8B4212" xmi:type="uml:OpaqueExpression"/>
        <name>equalityExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-EqualityExpression-equalityExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4833-9D9B-74F8DFAE1FC9" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EqualityExpression"/>
        <ownedComment xmi:id="Alf-EqualityExpression-equalityExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-40C5-9304-74F8EDC03E8E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-equalityExpressionUpperDerivation"/>
          <body>An equality expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-EqualityExpression-equalityExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4B45-9228-74F8BFD9BA3C" xmi:type="uml:OpaqueExpression"/>
        <name>equalityExpressionUpperDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-EqualityExpression-generalization" xmi:uuid="725A27D7-D3DC-48C4-9751-74F822788E1F" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-EqualityExpression-isNegated" xmi:uuid="725A27D7-D3DC-4314-93BF-74F882AE01E1" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-EqualityExpression-isNegated-ownedComment" xmi:uuid="725A27D7-D3DC-478A-9E53-74F8C94A5D38" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-isNegated"/>
          <body>Whether the test is for being not equal. </body>
        </ownedComment>
        <name>isNegated</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-EqualityExpression-noNullArguments" xmi:uuid="725A27D7-D3DC-4D53-9E8C-74F855A010B0" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-BinaryExpression-noNullArguments"/>
        <ownedComment xmi:id="Alf-EqualityExpression-noNullArguments-ownedComment" xmi:uuid="725A27D7-D3DC-41A0-93B7-74F839EBCEE2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EqualityExpression-noNullArguments"/>
          <body>Returns false for an equality expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EqualityExpression-noNullArguments-ownedParameter" xmi:uuid="725A27D7-D3DC-42C3-9346-74F8BBDABEBE" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>noNullArguments</name>
      </ownedOperation>
      <name>EqualityExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-AssignmentExpression" xmi:uuid="725A27D7-D3DC-41DA-9D2B-74F8C3025456" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-AssignmentExpression-ownedComment" xmi:uuid="725A27D7-D3DC-431E-96AE-74F8889C18AD" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-AssignmentExpression"/>
        <body>An expression used to assign a value to a local name, parameter or property. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation" xmi:uuid="725A27D7-D3DC-4240-9C07-74F89F5BD3F7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-460C-9F6B-74F8E4639B6F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation"/>
          <body>An assignment expression is a simple assignment if the assignment operator is "=". </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsSimpleDerivation-specification" xmi:uuid="725A27D7-D3DC-4326-9723-74F858AC005E" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsSimpleDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation" xmi:uuid="725A27D7-D3DC-453E-96BA-74F814D8A4E0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CE7-99FE-74F86BDF4546" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation"/>
          <body>An assignment expression is an arithmetic assignment if its operator is a compound assignment operator for an arithmetic operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsArithmeticDerivation-specification" xmi:uuid="725A27D7-D3DC-4F5E-94E0-74F8C5E43993" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsArithmeticDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation" xmi:uuid="725A27D7-D3DC-4711-9348-74F828F0D9CB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-498E-945C-74F8E703617B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDefinitionDerivation-specification" xmi:uuid="725A27D7-D3DC-4457-944F-74F8C05333CA" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsDefinitionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-4590-9035-74F807B4009E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F0F-9E7F-74F828BC62A4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation"/>
          <body>The left hand side of an assignment expression is a feature if it is a kind of FeatureLeftHandSide. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4BD1-9031-74F8B115143C" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation" xmi:uuid="725A27D7-D3DC-4EB8-9B61-74F8AA18F03C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F00-9BA6-74F8F72B7060" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation"/>
          <body>The left hand side of an assignment expression is indexed if it has an index. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsIndexedDerivation-specification" xmi:uuid="725A27D7-D3DC-4978-91AA-74F8644254FD" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsIndexedDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation" xmi:uuid="725A27D7-D3DC-42B0-91EF-74F81DFD9634" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4596-9869-74F88B0C128D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsDataValueUpdateDerivation-specification" xmi:uuid="725A27D7-D3DC-4FB6-904D-74F8952EB8B8" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsDataValueUpdateDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation" xmi:uuid="725A27D7-D3DC-4AFE-9233-74F876C5B3E0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D19-9D50-74F8C6BAACC0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation"/>
          <body>The new assigned source for an assignment to a local name is the assignment expression. If the assignment is a definition, then the type is given by the right hand side, the multiplicity upper bound is 1 if the upper bound of the right hand side is 1 and otherwise * and the multiplicity lower bound is 0. Otherwise, the type is the same as the left-hand side and the multiplicity is also the same as the left-hand side, if the left-hand side is not indexed, and is * if it is indexed. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentDerivation-specification" xmi:uuid="725A27D7-D3DC-48B5-93A3-74F82F3AB70E" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionAssignmentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-44EA-9543-74F8326649E5" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-461C-9BAE-74F87F030FED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-46CF-91C5-74F81FCED97D" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation" xmi:uuid="725A27D7-D3DC-4A3E-9240-74F8CCFFBD4C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48BF-9BAF-74F8E307C418" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionExpressionDerivation-specification" xmi:uuid="725A27D7-D3DC-408E-9EC9-74F83F01D090" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionExpressionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4900-9AED-74F878C217C6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4586-9D1C-74F8797C88BE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-458B-9DFD-74F84C9B72A9" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4A24-9240-74F80F74290C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CD4-9430-74F85ED522C1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionUpperDerivation"/>
          <body>An assignment expression has the same multiplicity upper bound as its right-hand side expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4E65-99F0-74F8A8564650" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4260-901F-74F8F2D63929" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BA9-99AD-74F8A0D54AD0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-488C-98FA-74F817F955D2" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance" xmi:uuid="725A27D7-D3DC-4A5F-9CF1-74F876380E99" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance-ownedComment" xmi:uuid="725A27D7-D3DC-4BF9-9895-74F80009A0A7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance"/>
          <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 the left-hand side must either be untyped or have a type that conforms to the type of the right-hand side expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentTypeConformance-specification" xmi:uuid="725A27D7-D3DC-49A3-9AF7-74F83F488E0F" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionSimpleAssignmentTypeConformance</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance" xmi:uuid="725A27D7-D3DC-4B97-9495-74F8E5C6BA74" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance-ownedComment" xmi:uuid="725A27D7-D3DC-4FBD-9E3A-74F845632379" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance"/>
          <body>If the left-hand side of a simple assignment 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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionSimpleAssignmentMultiplicityConformance-specification" xmi:uuid="725A27D7-D3DC-4C59-908D-74F863DC377D" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionSimpleAssignmentMultiplicityConformance</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance" xmi:uuid="725A27D7-D3DC-4F90-989B-74F89BE579F8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance-ownedComment" xmi:uuid="725A27D7-D3DC-47AA-9FAA-74F828BB8BE5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance"/>
          <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 type Integer or they both have 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 type Boolean or Bit String or the left-hand side has type Bit String and the right-hand side has type Integer. If the operator is a shift operator, then the left-hand side must have type Bit String and the right-hand side must have type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentTypeConformance-specification" xmi:uuid="725A27D7-D3DC-47FB-981D-74F889EE2FC9" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionCompoundAssignmentTypeConformance</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance" xmi:uuid="725A27D7-D3DC-43AD-9C7C-74F8699F99AD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance-ownedComment" xmi:uuid="725A27D7-D3DC-4BE7-9A20-74F86464CC7A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance"/>
          <body>For a compound assignment, both the left-hand and right-hand sides must have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionCompoundAssignmentMultiplicityConformance-specification" xmi:uuid="725A27D7-D3DC-410A-9483-74F8A4D3693D" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionCompoundAssignmentMultiplicityConformance</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4645-9EF6-74F815C560A4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-486F-909F-74F81B66D4EC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-47FA-997C-74F812930C42" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation" xmi:uuid="725A27D7-D3DC-497D-9982-74F84BA886DE" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4931-93EA-74F84AB1059F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsCollectionConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4E3E-9D9C-74F8EACDD481" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsCollectionConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-42C6-95FF-74F8FB6B48FC" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BF9-9DC3-74F8F4BC6097" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation"/>
          <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 argument type is Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4DA4-95BC-74F8B6B5A927" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionIsBitStringConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality" xmi:uuid="725A27D7-D3DC-444F-9F39-74F8643E1150" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AssignmentExpression"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality-ownedComment" xmi:uuid="725A27D7-D3DC-4ECD-97DC-74F83D1D3ABA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AssignmentExpression-assignmentExpressionDataValueUpdateLegality-specification" xmi:uuid="725A27D7-D3DC-4677-92A9-74F8A4558CE8" xmi:type="uml:OpaqueExpression"/>
        <name>assignmentExpressionDataValueUpdateLegality</name>
      </ownedRule>
      <generalization xmi:id="Alf-AssignmentExpression-generalization" xmi:uuid="725A27D7-D3DC-4BDA-9979-74F824AA907C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-operator" xmi:uuid="725A27D7-D3DC-40EB-9DBB-74F87ACFFC9A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-operator-ownedComment" xmi:uuid="725A27D7-D3DC-4842-9492-74F8658CB4EE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-operator"/>
          <body>The image of the assignment operator used in the expression. </body>
        </ownedComment>
        <name>operator</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-leftHandSide" xmi:uuid="725A27D7-D3DC-457F-93C7-74F82F41784B" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignmentExpression-leftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-43A2-9590-74F8E24DFFF9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-leftHandSide"/>
          <body>The left-hand side of the assignment, to which a value is to be assigned. </body>
        </ownedComment>
        <name>leftHandSide</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_leftHandSide_assignmentExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-rightHandSide" xmi:uuid="725A27D7-D3DC-45FD-9746-74F86EEE0FC4" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignmentExpression-rightHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-418C-9FA9-74F8E9A0EE89" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-rightHandSide"/>
          <body>The right-hand side expression of the assignment, which produces the value being assigned. </body>
        </ownedComment>
        <name>rightHandSide</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_rightHandSide_assignmentExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-assignment" xmi:uuid="725A27D7-D3DC-46B5-9B5F-74F8851EEE41" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignmentExpression-assignment-ownedComment" xmi:uuid="725A27D7-D3DC-4191-9A96-74F89803E344" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-assignment"/>
          <body>If the left-hand side is a name, then the new assigned source for that name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-AssignmentExpression-assignment-lowerValue" xmi:uuid="725A27D7-D3DC-4843-99E3-74F8C5EAE960" xmi:type="uml:LiteralInteger"/>
        <name>assignment</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignment_assignmentExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-feature" xmi:uuid="725A27D7-D3DC-497C-9D62-74F829BCD536" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignmentExpression-feature-ownedComment" xmi:uuid="725A27D7-D3DC-4621-976B-74F84E06396A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-feature"/>
          <body>If the left-hand side is a feature, then the referent for that feature. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-AssignmentExpression-feature-lowerValue" xmi:uuid="725A27D7-D3DC-48F7-9976-74F8032DF960" xmi:type="uml:LiteralInteger"/>
        <name>feature</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_feature_assignmentExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isIndexed" xmi:uuid="725A27D7-D3DC-4BC7-9C4A-74F86BB77B0A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isIndexed-ownedComment" xmi:uuid="725A27D7-D3DC-449E-9165-74F8C3AFF5FE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isIndexed"/>
          <body>If the left-hand side is a feature, whether it has an index or not. </body>
        </ownedComment>
        <name>isIndexed</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isArithmetic" xmi:uuid="725A27D7-D3DC-40C1-928B-74F88E21AE0E" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isArithmetic-ownedComment" xmi:uuid="725A27D7-D3DC-4EFA-9938-74F8D13A89E8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isArithmetic"/>
          <body>If this is a compound assignment, whether the compound assignment operator is arithmetic or not. </body>
        </ownedComment>
        <name>isArithmetic</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isDefinition" xmi:uuid="725A27D7-D3DC-40B5-96E0-74F833869E87" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4DAF-94FB-74F87245030F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isDefinition"/>
          <body>Whether this assignment is the definition of a new local name or not. </body>
        </ownedComment>
        <name>isDefinition</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isSimple" xmi:uuid="725A27D7-D3DC-4265-99E1-74F866BD1447" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isSimple-ownedComment" xmi:uuid="725A27D7-D3DC-4021-92BA-74F8D5C96C22" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isSimple"/>
          <body>Whether this is a simple assignment or not. </body>
        </ownedComment>
        <name>isSimple</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-expression" xmi:uuid="725A27D7-D3DC-41ED-9FE5-74F886085992" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AssignmentExpression-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4A21-9DFB-74F8B54A0A9A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-expression"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-AssignmentExpression-expression-lowerValue" xmi:uuid="725A27D7-D3DC-4CD1-966C-74F811EF5B11" xmi:type="uml:LiteralInteger"/>
        <name>expression</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_assignmentExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isFeature" xmi:uuid="725A27D7-D3DC-4945-9493-74F8CD2E29D0" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isFeature-ownedComment" xmi:uuid="725A27D7-D3DC-4874-9602-74F8FB9C4997" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isFeature"/>
          <body>Whether the left-hand side is a feature or not. </body>
        </ownedComment>
        <name>isFeature</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isDataValueUpdate" xmi:uuid="725A27D7-D3DC-47BC-9617-74F8AAD63E37" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isDataValueUpdate-ownedComment" xmi:uuid="725A27D7-D3DC-4A02-9AAD-74F8CEFFBB86" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isDataValueUpdate"/>
          <body>Whether this assignment updates an attribute of a data value held in a local name or parameter. </body>
        </ownedComment>
        <name>isDataValueUpdate</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isCollectionConversion" xmi:uuid="725A27D7-D3DC-422C-982D-74F868BE9F5C" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isCollectionConversion-ownedComment" xmi:uuid="725A27D7-D3DC-4810-9613-74F835F9027F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isCollectionConversion"/>
          <body>Whether collection conversion is required for this assignment. </body>
        </ownedComment>
        <name>isCollectionConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AssignmentExpression-isBitStringConversion" xmi:uuid="725A27D7-D3DC-4F4A-931A-74F819220F54" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AssignmentExpression-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-4310-9BC7-74F82319FCB7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-isBitStringConversion"/>
          <body>Whether BitString conversion is required for this assignment. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-AssignmentExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4574-9AFA-74F878FA33E3" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-AssignmentExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4745-9279-74F89F4784E8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssignmentExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-AssignmentExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-44E4-977D-74F8228C97F5" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-AssignmentExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-45B6-939F-74F8864CDD45" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-AssignmentExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4549-9521-74F893C0B97C" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>AssignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LogicalExpression" xmi:uuid="725A27D7-D3DC-43CC-9259-74F8F325FA09" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LogicalExpression-ownedComment" xmi:uuid="725A27D7-D3DC-442E-9A70-74F85F1DDD49" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LogicalExpression"/>
        <body>A binary expression with a logical operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4FB9-9540-74F894B6BAFB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F6A-9F82-74F8DF178063" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionTypeDerivation"/>
          <body>A logical expression has type Boolean if it is not bit-wise and type BitString if it is bit-wise. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-41D1-9828-74F8C9BBAD76" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-407E-9B83-74F83B5589E1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C68-987D-74F84DEBB74A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionLowerDerivation"/>
          <body>A logical expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is 0 and 1 otherwise. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-44F7-9BAD-74F86576DB82" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4C88-995B-74F8C5513A66" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4022-95DA-74F8ACD9E44C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionUpperDerivation"/>
          <body>A logical expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-43D1-945B-74F86B1B57FD" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionOperands" xmi:uuid="725A27D7-D3DC-4CCE-9985-74F85BFF2007" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionOperands-ownedComment" xmi:uuid="725A27D7-D3DC-451D-969A-74F84D669A1A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionOperands"/>
          <body>The operands of a logical expression must have type Boolean, Integer or BitString. However, if one of the operands is Boolean, then the other must also be Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionOperands-specification" xmi:uuid="725A27D7-D3DC-47D4-99D7-74F83A99EEE3" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionOperands</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation" xmi:uuid="725A27D7-D3DC-4F59-9A7A-74F85235DA92" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation-ownedComment" xmi:uuid="725A27D7-D3DC-4233-94F3-74F81C134913" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation"/>
          <body>BitString conversion is required if the first operand expression of a logical expression has type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion1Derivation-specification" xmi:uuid="725A27D7-D3DC-4101-9D57-74F89D737C52" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionIsBitStringConversion1Derivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation" xmi:uuid="725A27D7-D3DC-4B7E-9FFA-74F86C52ED47" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation-ownedComment" xmi:uuid="725A27D7-D3DC-460F-9A0B-74F8642FB357" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation"/>
          <body>BitString conversion is required if the second operand expression of a logical expression has type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionIsBitStringConversion2Derivation-specification" xmi:uuid="725A27D7-D3DC-4B67-9931-74F82A14C7D6" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionIsBitStringConversion2Derivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation" xmi:uuid="725A27D7-D3DC-43CF-95DE-74F821780DE0" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-454E-9F89-74F86F50EA5E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation"/>
          <body>A logical expression is bit-wise if the type of its first operand is not Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-LogicalExpression-logicalExpressionIsBitWiseDerivation-specification" xmi:uuid="725A27D7-D3DC-4DC8-91CD-74F8D0F9715A" xmi:type="uml:OpaqueExpression"/>
        <name>logicalExpressionIsBitWiseDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-LogicalExpression-generalization" xmi:uuid="725A27D7-D3DC-47A6-9628-74F869478A6C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-LogicalExpression-isBitWise" xmi:uuid="725A27D7-D3DC-4C67-9295-74F8961B04EC" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LogicalExpression-isBitWise-ownedComment" xmi:uuid="725A27D7-D3DC-48C8-9B54-74F8D5E47A6B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-isBitWise"/>
          <body>Whether this is a bit-wise logical operation on bit strings. </body>
        </ownedComment>
        <name>isBitWise</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LogicalExpression-isBitStringConversion1" xmi:uuid="725A27D7-D3DC-4273-99A3-74F8D5257F25" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LogicalExpression-isBitStringConversion1-ownedComment" xmi:uuid="725A27D7-D3DC-4ED9-947E-74F8E125B844" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-isBitStringConversion1"/>
          <body>Whether the first operand expression requires BitString conversion. </body>
        </ownedComment>
        <name>isBitStringConversion1</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LogicalExpression-isBitStringConversion2" xmi:uuid="725A27D7-D3DC-4063-9706-74F837E90C99" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LogicalExpression-isBitStringConversion2-ownedComment" xmi:uuid="725A27D7-D3DC-4A2F-9A2D-74F8B319E9BE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LogicalExpression-isBitStringConversion2"/>
          <body>Whether the second operand expression requires BitString conversion. </body>
        </ownedComment>
        <name>isBitStringConversion2</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>LogicalExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceConstructionExpression" xmi:uuid="725A27D7-D3DC-49FE-9C79-74F8AD4488C4" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceConstructionExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4D30-9A3E-74F8ECC77C7E" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <body>An expression used to construct a sequence of values. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-443D-990D-74F8333EB80A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4FCB-918F-74F852FD2641" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4691-916F-74F89ECDC9BA" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4FC8-95CD-74F822316BCD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48ED-91C4-74F8AD8D2358" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4B58-9AE6-74F8903D86D4" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4934-9F78-74F85070EB21" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4E86-9680-74F8DBCE1036" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4725-910E-74F84FE49448" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType" xmi:uuid="725A27D7-D3DC-4F86-9FCE-74F8C13B2FF5" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType-ownedComment" xmi:uuid="725A27D7-D3DC-4553-9D05-74F827EAC585" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType"/>
          <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 the type name must not be empty and the classifier to which it resolves must be the instantiation of a collection class. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionType-specification" xmi:uuid="725A27D7-D3DC-4655-92A5-74F8524795AD" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionType</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType" xmi:uuid="725A27D7-D3DC-4FE4-9998-74F8414A28C4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType-ownedComment" xmi:uuid="725A27D7-D3DC-46FA-9534-74F8D67A7032" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType"/>
          <body>If the elements of a sequence construction expression are given by a sequence range, then the expression must have 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. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionElementType-specification" xmi:uuid="725A27D7-D3DC-4B9A-909F-74F84CBBC117" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionElementType</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4BE3-9273-74F81BCED6C2" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceConstructionExpression"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4EEC-9743-74F83E8A7C22" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceConstructionExpression-sequenceConstructionExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4A2F-9CA1-74F86E8A41A8" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceConstructionExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceConstructionExpression-generalization" xmi:uuid="725A27D7-D3DC-4A04-9BAB-74F873FF31E2" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-elements" xmi:uuid="725A27D7-D3DC-4E1B-9B49-74F89E287B14" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-elements-ownedComment" xmi:uuid="725A27D7-D3DC-4173-9F34-74F8752CE265" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-elements"/>
          <body>The specification of the elements in the sequence. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SequenceConstructionExpression-elements-lowerValue" xmi:uuid="725A27D7-D3DC-4B29-96BE-74F89B72FFFA" xmi:type="uml:LiteralInteger"/>
        <name>elements</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-SequenceElements"/>
        <association xmi:idref="Alf-A_elements_sequenceConstructionExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity" xmi:uuid="725A27D7-D3DC-4FD8-9997-74F8A05499FF" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-48D1-9E8F-74F8E9051709" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-hasMultiplicity"/>
          <body>Whether the sequence construction expression has a multiplicity indicator. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-SequenceConstructionExpression-hasMultiplicity-defaultValue" xmi:uuid="725A27D7-D3DC-4934-99A3-74F8DF9830C2" xmi:type="uml:LiteralBoolean"/>
        <name>hasMultiplicity</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceConstructionExpression-typeName" xmi:uuid="725A27D7-D3DC-4C1D-9F13-74F8EF3A3B0B" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-4787-9863-74F885F9505F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-typeName"/>
          <body>The name of the type of the elements in the sequence. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SequenceConstructionExpression-typeName-lowerValue" xmi:uuid="725A27D7-D3DC-4B33-9E19-74F85BEC3077" xmi:type="uml:LiteralInteger"/>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_sequenceConstructionExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-SequenceConstructionExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4DAC-9CBF-74F88911CB46" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-SequenceConstructionExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4517-9DBF-74F8DECA3079" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceConstructionExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SequenceConstructionExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4EF2-945B-74F8CBD5C8BE" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SequenceConstructionExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4DAF-9CA2-74F847E8A332" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SequenceConstructionExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4C81-9B43-74F8EDD3267C" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>SequenceConstructionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ExtentOrExpression" xmi:uuid="725A27D7-D3DC-4781-96AC-74F8AC5FCCE2" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ExtentOrExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4C5E-9847-74F8B969DBD5" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ExtentOrExpression"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation" xmi:uuid="725A27D7-D3DC-4BA6-95F3-74F84624788B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ExtentOrExpression"/>
        <ownedComment xmi:id="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4003-94F2-74F847D94C40" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ExtentOrExpression-extentOrExpressionExpressionDerivation-specification" xmi:uuid="725A27D7-D3DC-439F-9C1A-74F8A5A6A624" xmi:type="uml:OpaqueExpression"/>
        <name>extentOrExpressionExpressionDerivation</name>
      </ownedRule>
      <ownedAttribute xmi:id="Alf-ExtentOrExpression-name" xmi:uuid="725A27D7-D3DC-437C-9F3E-74F86CD44696" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ExtentOrExpression-name-ownedComment" xmi:uuid="725A27D7-D3DC-41A6-9CF7-74F8A7BAE4C1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExtentOrExpression-name"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-ExtentOrExpression-name-lowerValue" xmi:uuid="725A27D7-D3DC-41A8-96CE-74F8268AC9C1" xmi:type="uml:LiteralInteger"/>
        <name>name</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_name_extentOrExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ExtentOrExpression-expression" xmi:uuid="725A27D7-D3DC-418B-90CA-74F8DD8BDCC4" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ExtentOrExpression-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4AD4-9CD7-74F866772160" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExtentOrExpression-expression"/>
          <body>The effective expression for the target. </body>
        </ownedComment>
        <name>expression</name>
        <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="725A27D7-D3DC-4213-9CE1-74F862EDB7D7" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ExtentOrExpression-nonNameExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4A31-9B5B-74F8102FFE4A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExtentOrExpression-nonNameExpression"/>
          <body>The target primary expression, if it is not a qualified name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ExtentOrExpression-nonNameExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4208-979D-74F80BBEFCED" xmi:type="uml:LiteralInteger"/>
        <name>nonNameExpression</name>
        <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="725A27D7-D3DC-454A-9D86-74F815070837" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-CollectOrIterateExpression-ownedComment" xmi:uuid="725A27D7-D3DC-42B4-931B-74F88D5FE31D" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-CollectOrIterateExpression"/>
        <body>A sequence expansion expression with a collect or iterate operation. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4348-9D2E-74F8250F1806" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
        <ownedComment xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D34-9DA3-74F86BDD8F23" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation"/>
          <body>A collect or iterate expression has the same type as its argument expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4CEE-9087-74F8AAF63E24" xmi:type="uml:OpaqueExpression"/>
        <name>collectOrIterateExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4405-9768-74F8A50D848A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
        <ownedComment xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4021-97DA-74F87FAADFAD" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4786-9DE3-74F81F481A18" xmi:type="uml:OpaqueExpression"/>
        <name>collectOrIterateExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4438-96CB-74F847AB0DFE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-CollectOrIterateExpression"/>
        <ownedComment xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-43DC-94A0-74F8E450B9C7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-CollectOrIterateExpression-collectOrIterateExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-41E0-934B-74F8E2C8F0E6" xmi:type="uml:OpaqueExpression"/>
        <name>collectOrIterateExpressionUpperDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-CollectOrIterateExpression-generalization" xmi:uuid="725A27D7-D3DC-4C80-9842-74F8EE309B7E" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceExpansionExpression"/>
      </generalization>
      <name>CollectOrIterateExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-QualifiedName" xmi:uuid="725A27D7-D3DC-4C1F-9829-74F8D9E7CF23" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-QualifiedName-ownedComment" xmi:uuid="725A27D7-D3DC-4F27-91B6-74F890E981C0" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-QualifiedName"/>
        <body>The representation of a qualified name as a sequence of individual simple names. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation" xmi:uuid="725A27D7-D3DC-480F-91CA-74F8D68736F7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4DC2-9D16-74F83B3F1F0E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation"/>
          <body>The unqualified name of a qualified name is the last name binding. 
</body>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameUnqualifiedNameDerivation-specification" xmi:uuid="725A27D7-D3DC-4053-983F-74F872B9DA25" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameUnqualifiedNameDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNamePathNameDerivation" xmi:uuid="725A27D7-D3DC-401E-9DE0-74F8B0534CA8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNamePathNameDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A16-9FDD-74F8AFD9F68F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNamePathNameDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNamePathNameDerivation-specification" xmi:uuid="725A27D7-D3DC-421F-93EE-74F888033FE9" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNamePathNameDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation" xmi:uuid="725A27D7-D3DC-4BA9-9061-74F8FF48CBA7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41DF-9727-74F820A7A720" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation"/>
          <body>A qualified name is a feature reference is its disambiguation is not empty. </body>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameIsFeatureReferenceDerivation-specification" xmi:uuid="725A27D7-D3DC-41D2-9C1A-74F805D1D4BE" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameIsFeatureReferenceDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameQualificationDerivation" xmi:uuid="725A27D7-D3DC-47D9-9233-74F826E66D61" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameQualificationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4016-9412-74F843ACCA61" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameQualificationDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameQualificationDerivation-specification" xmi:uuid="725A27D7-D3DC-42A9-9D61-74F82B00F3D4" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameQualificationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameDisambiguationDerivation" xmi:uuid="725A27D7-D3DC-421A-9DA2-74F83CDBE395" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameDisambiguationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-468D-9508-74F8BB18339C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameDisambiguationDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameDisambiguationDerivation-specification" xmi:uuid="725A27D7-D3DC-4CCE-94FA-74F80216A4F1" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameDisambiguationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameReferentDerivation" xmi:uuid="725A27D7-D3DC-4F44-9D98-74F8DA2F0857" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-422E-9D38-74F802E4B089" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-45CD-98B2-74F8AB3DF1F7" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameLocalName" xmi:uuid="725A27D7-D3DC-40CE-915F-74F8DBF3FA7B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameLocalName-ownedComment" xmi:uuid="725A27D7-D3DC-46EB-9F18-74F81990AD31" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameLocalName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameLocalName-specification" xmi:uuid="725A27D7-D3DC-4379-9E29-74F8400A666D" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameLocalName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName" xmi:uuid="725A27D7-D3DC-40E0-94D6-74F8A0757E48" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName-ownedComment" xmi:uuid="725A27D7-D3DC-4B39-9F3F-74F8913B9802" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameNonLocalUnqualifiedName-specification" xmi:uuid="725A27D7-D3DC-473A-9B4D-74F834EE24E0" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameNonLocalUnqualifiedName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameQualifiedResolution" xmi:uuid="725A27D7-D3DC-4472-9019-74F89F70944C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameQualifiedResolution-ownedComment" xmi:uuid="725A27D7-D3DC-4B24-931B-74F828BDB11D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameQualifiedResolution"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameQualifiedResolution-specification" xmi:uuid="725A27D7-D3DC-48F9-9A67-74F8E94FA5EA" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameQualifiedResolution</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameTemplateBinding" xmi:uuid="725A27D7-D3DC-4407-9DC7-74F863700035" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameTemplateBinding-ownedComment" xmi:uuid="725A27D7-D3DC-41C1-9D55-74F81E64D4D2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameTemplateBinding"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameTemplateBinding-specification" xmi:uuid="725A27D7-D3DC-4905-9A66-74F83DFFE1AA" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameTemplateBinding</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-QualifiedName-qualifiedNameTemplateNameDerivation" xmi:uuid="725A27D7-D3DC-4A9A-9DB1-74F86981F3D6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-QualifiedName"/>
        <ownedComment xmi:id="Alf-QualifiedName-qualifiedNameTemplateNameDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4107-9144-74F8AD024A5A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualifiedNameTemplateNameDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-QualifiedName-qualifiedNameTemplateNameDerivation-specification" xmi:uuid="725A27D7-D3DC-401D-9775-74F854B74321" xmi:type="uml:OpaqueExpression"/>
        <name>qualifiedNameTemplateNameDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-QualifiedName-generalization" xmi:uuid="725A27D7-D3DC-4D10-984B-74F8C1CACFEA" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-QualifiedName-isAmbiguous" xmi:uuid="725A27D7-D3DC-4427-9DB3-74F8D15F2DDD" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-QualifiedName-isAmbiguous-ownedComment" xmi:uuid="725A27D7-D3DC-448F-9556-74F891A6D9D9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-isAmbiguous"/>
          <body>Whether this qualified name is ambiguous. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-QualifiedName-isAmbiguous-defaultValue" xmi:uuid="725A27D7-D3DC-4615-921D-74F84E71BC54" xmi:type="uml:LiteralBoolean"/>
        <name>isAmbiguous</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-pathName" xmi:uuid="725A27D7-D3DC-4353-96CB-74F831F21038" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-QualifiedName-pathName-ownedComment" xmi:uuid="725A27D7-D3DC-449D-9123-74F81461C02D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-pathName"/>
          <body>The complete path name for the qualified name, with individual name bindings separated by "::" punctuation. </body>
        </ownedComment>
        <name>pathName</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-isFeatureReference" xmi:uuid="725A27D7-D3DC-4796-94CD-74F889380E8E" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-QualifiedName-isFeatureReference-ownedComment" xmi:uuid="725A27D7-D3DC-4AAD-9B9E-74F895237258" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-isFeatureReference"/>
          <body>Indicates whether this qualified name has been disambiguated to a feature reference. </body>
        </ownedComment>
        <name>isFeatureReference</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-qualification" xmi:uuid="725A27D7-D3DC-4070-9D1C-74F86E54236A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-qualification-ownedComment" xmi:uuid="725A27D7-D3DC-4963-9FE6-74F86DD76DB9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-qualification"/>
          <body>The qualified name corresponding to the qualification part of this qualified name, if any. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-QualifiedName-qualification-lowerValue" xmi:uuid="725A27D7-D3DC-4DD9-9078-74F849C6224E" xmi:type="uml:LiteralInteger"/>
        <name>qualification</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_qualification_qualifiedName"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-disambiguation" xmi:uuid="725A27D7-D3DC-4B40-921D-74F8D23DD8DC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-disambiguation-ownedComment" xmi:uuid="725A27D7-D3DC-46BA-933D-74F8B43FA224" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-disambiguation"/>
          <body>The disambiguation into a feature reference of a syntactic element initially parsed as a qualified name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-QualifiedName-disambiguation-lowerValue" xmi:uuid="725A27D7-D3DC-4875-9505-74F8A23A98BB" xmi:type="uml:LiteralInteger"/>
        <name>disambiguation</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_disambiguation_qualifiedName"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-nameBinding" xmi:uuid="725A27D7-D3DC-40CC-9B84-74F84D2BA718" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-nameBinding-ownedComment" xmi:uuid="725A27D7-D3DC-459A-9338-74F82DB63331" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-nameBinding"/>
          <body>The sequence of individual name bindings in this qualified name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-QualifiedName-nameBinding-lowerValue" xmi:uuid="725A27D7-D3DC-4D5F-94AD-74F88D386D5F" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-QualifiedName-nameBinding-upperValue" xmi:uuid="725A27D7-D3DC-4D2F-9D8A-74F8BD7A1D87" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>nameBinding</name>
        <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="725A27D7-D3DC-420B-9EE5-74F80453F99A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-referent-ownedComment" xmi:uuid="725A27D7-D3DC-434A-9F95-74F84B537599" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-referent"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-QualifiedName-referent-lowerValue" xmi:uuid="725A27D7-D3DC-4469-9621-74F814CB113A" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-QualifiedName-referent-upperValue" xmi:uuid="725A27D7-D3DC-451C-94A2-74F8855A9A7B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_qualifiedName"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-unqualifiedName" xmi:uuid="725A27D7-D3DC-4049-9BCF-74F814499D15" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-unqualifiedName-ownedComment" xmi:uuid="725A27D7-D3DC-42E5-99E8-74F88F19E283" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-unqualifiedName"/>
          <body>The rightmost individual name binding in the qualified name, without the qualification. </body>
        </ownedComment>
        <name>unqualifiedName</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-NameBinding"/>
        <association xmi:idref="Alf-A_qualifiedName_unqualifiedName"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-QualifiedName-templateName" xmi:uuid="725A27D7-D3DC-49B9-990F-74F86EECD567" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedName-templateName-ownedComment" xmi:uuid="725A27D7-D3DC-40CB-992F-74F852FCB7A6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedName-templateName"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-QualifiedName-templateName-lowerValue" xmi:uuid="725A27D7-D3DC-44D0-93E9-74F8BD59BA23" xmi:type="uml:LiteralInteger"/>
        <name>templateName</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_templateName_qualifiedName"/>
      </ownedAttribute>
      <name>QualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-IsUniqueExpression" xmi:uuid="725A27D7-D3DC-440C-9C5E-74F81CDA4BCF" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-IsUniqueExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4362-9DDC-74F8C03F661D" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-IsUniqueExpression"/>
        <body>A sequence expansion expression with a isUnique. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4C32-9E93-74F8967C2E66" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
        <ownedComment xmi:id="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4172-9239-74F864A77E55" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation"/>
          <body>An isUnique expression has the type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsUniqueExpression-isUniqueExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-455E-99DC-74F8CB6BB3B5" xmi:type="uml:OpaqueExpression"/>
        <name>isUniqueExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4AAA-9349-74F8B827C3A3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
        <ownedComment xmi:id="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CB1-90E2-74F8E0AAE985" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation"/>
          <body>An isUnique expression has a multiplicity lower bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsUniqueExpression-isUniqueExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4FA1-93EB-74F8E8CA40D6" xmi:type="uml:OpaqueExpression"/>
        <name>isUniqueExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4236-9A5F-74F8BDE9CD43" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
        <ownedComment xmi:id="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48FD-9FAD-74F8ECB1CF48" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation"/>
          <body>An isUnique expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsUniqueExpression-isUniqueExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-453E-9C38-74F8C6D1C3B9" xmi:type="uml:OpaqueExpression"/>
        <name>isUniqueExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument" xmi:uuid="725A27D7-D3DC-4823-92D6-74F8BFDE55E0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IsUniqueExpression"/>
        <ownedComment xmi:id="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument-ownedComment" xmi:uuid="725A27D7-D3DC-4D37-97E0-74F85672538C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument"/>
          <body>The argument of an isUnique expression must have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-IsUniqueExpression-isUniqueExpressionExpressionArgument-specification" xmi:uuid="725A27D7-D3DC-4D9A-955E-74F897376E94" xmi:type="uml:OpaqueExpression"/>
        <name>isUniqueExpressionExpressionArgument</name>
      </ownedRule>
      <generalization xmi:id="Alf-IsUniqueExpression-generalization" xmi:uuid="725A27D7-D3DC-45A6-9A80-74F8938296D9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceExpansionExpression"/>
      </generalization>
      <name>IsUniqueExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ArithmeticExpression" xmi:uuid="725A27D7-D3DC-425E-9759-74F8F432D3D3" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ArithmeticExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4C1C-9BD8-74F8B7503A5E" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ArithmeticExpression"/>
        <body>A binary expression with an arithmetic operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation" xmi:uuid="725A27D7-D3DC-4570-92C5-74F800AE8715" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
        <ownedComment xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4193-920C-74F8D8AD40E5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation"/>
          <body>An arithmetic expression is a string concatenation expression if its type is String. </body>
        </ownedComment>
        <specification xmi:id="Alf-ArithmeticExpression-arithmeticExpressionIsConcatenationDerivation-specification" xmi:uuid="725A27D7-D3DC-42CD-9887-74F81A6D8688" xmi:type="uml:OpaqueExpression"/>
        <name>arithmeticExpressionIsConcatenationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4AB8-9A2A-74F8F059C64B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
        <ownedComment xmi:id="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4294-9C52-74F82EA9767B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation"/>
          <body>The type of an arithmetic expression is the same as the type of its operands. </body>
        </ownedComment>
        <specification xmi:id="Alf-ArithmeticExpression-arithmeticExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4A89-9270-74F8733B751D" xmi:type="uml:OpaqueExpression"/>
        <name>arithmeticExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4401-9A8A-74F849010DCB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
        <ownedComment xmi:id="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F7C-91F1-74F821FE05A5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation"/>
          <body>An arithmetic expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is 0 and 1 otherwise. </body>
        </ownedComment>
        <specification xmi:id="Alf-ArithmeticExpression-arithmeticExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4CF7-9129-74F802DC8298" xmi:type="uml:OpaqueExpression"/>
        <name>arithmeticExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-487F-9A0A-74F893A147F2" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
        <ownedComment xmi:id="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4138-94A1-74F885463509" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation"/>
          <body>An arithmetic expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ArithmeticExpression-arithmeticExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4317-9A38-74F8F1E55B5A" xmi:type="uml:OpaqueExpression"/>
        <name>arithmeticExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes" xmi:uuid="725A27D7-D3DC-4606-9028-74F899AB3B54" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ArithmeticExpression"/>
        <ownedComment xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes-ownedComment" xmi:uuid="725A27D7-D3DC-4720-9368-74F854468FBE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes"/>
          <body>The operands of an arithmetic expression must both have type Integer, unless the operator is +, in which case they may also both have type String. </body>
        </ownedComment>
        <specification xmi:id="Alf-ArithmeticExpression-arithmeticExpressionOperandTypes-specification" xmi:uuid="725A27D7-D3DC-4C6B-9AD6-74F8B57ACA8D" xmi:type="uml:OpaqueExpression"/>
        <name>arithmeticExpressionOperandTypes</name>
      </ownedRule>
      <generalization xmi:id="Alf-ArithmeticExpression-generalization" xmi:uuid="725A27D7-D3DC-4840-94CA-74F803C899BF" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ArithmeticExpression-isConcatenation" xmi:uuid="725A27D7-D3DC-4FE8-92AB-74F80696BD43" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ArithmeticExpression-isConcatenation-ownedComment" xmi:uuid="725A27D7-D3DC-40B4-9DC8-74F8C716A25A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ArithmeticExpression-isConcatenation"/>
          <body>Whether this is a string concatenation expression. </body>
        </ownedComment>
        <name>isConcatenation</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>ArithmeticExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-FeatureLeftHandSide" xmi:uuid="725A27D7-D3DC-4633-9064-74F87738D992" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-FeatureLeftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-46C5-9034-74F8FA3CF6F5" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <body>A left-hand side that is a property reference. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation" xmi:uuid="725A27D7-D3DC-472B-91FA-74F821294A33" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4DD4-9066-74F8E68F6111" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentBeforeDerivation-specification" xmi:uuid="725A27D7-D3DC-466E-925B-74F815FF9ABE" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideAssignmentBeforeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation" xmi:uuid="725A27D7-D3DC-41AF-95E4-74F855AE1AD4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C85-9AE6-74F8A7C7B0FD" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentAfterDerivation-specification" xmi:uuid="725A27D7-D3DC-47B3-9F1B-74F8F7D71753" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideAssignmentAfterDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression" xmi:uuid="725A27D7-D3DC-4BE1-955F-74F85476D13E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4B7B-9676-74F8FC428144" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression"/>
          <body>The expression of the feature reference of a feature left-hand side must have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideFeatureExpression-specification" xmi:uuid="725A27D7-D3DC-4688-9051-74F801A9167B" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideFeatureExpression</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore" xmi:uuid="725A27D7-D3DC-40A5-9D55-74F8FD2E7F32" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4AA9-99EE-74F8CAD4557B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4D0B-9F59-74F826D90C45" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation" xmi:uuid="725A27D7-D3DC-4B3E-9AE7-74F80DC6ABB1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A35-9473-74F8BBA07882" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4A5C-9D35-74F83D79B10D" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation" xmi:uuid="725A27D7-D3DC-440D-9BD1-74F881805D06" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4FB2-9C71-74F8B5C4D2EF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation"/>
          <body>The type of a feature left-hand side is the type of its referent. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-42ED-985C-74F831D9D626" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation" xmi:uuid="725A27D7-D3DC-4792-9900-74F8906E2952" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4172-9FC4-74F8915C2FBB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation"/>
          <body>If a feature left-hand side is indexed, then its lower bound is 1. Otherwise, its lower bound is that of its referent. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4E8A-958D-74F82A1EAA85" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation" xmi:uuid="725A27D7-D3DC-494F-96E6-74F8411DB005" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F73-9DA7-74F85E00F042" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-431A-9800-74F83A8F4180" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint" xmi:uuid="725A27D7-D3DC-4AB5-98E1-74F874E640CD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint-ownedComment" xmi:uuid="725A27D7-D3DC-4D4C-90AC-74F8E32CA971" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint"/>
          <body>The feature of a feature-left hand side must have a single referent that is a structural feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideReferentConstraint-specification" xmi:uuid="725A27D7-D3DC-4D92-983B-74F8F7B3BDC2" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideReferentConstraint</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature" xmi:uuid="725A27D7-D3DC-4F55-9C14-74F88346ECA8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureLeftHandSide"/>
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature-ownedComment" xmi:uuid="725A27D7-D3DC-41F8-94A3-74F843CFEEEB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature"/>
          <body>If a feature left-hand side has an index, then the referent of the feature must be ordered and non-unique. </body>
        </ownedComment>
        <specification xmi:id="Alf-FeatureLeftHandSide-featureLeftHandSideIndexedFeature-specification" xmi:uuid="725A27D7-D3DC-4DA2-9DD7-74F8D1227728" xmi:type="uml:OpaqueExpression"/>
        <name>featureLeftHandSideIndexedFeature</name>
      </ownedRule>
      <generalization xmi:id="Alf-FeatureLeftHandSide-generalization" xmi:uuid="725A27D7-D3DC-400D-994E-74F8EFC3A5A8" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LeftHandSide"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-FeatureLeftHandSide-feature" xmi:uuid="725A27D7-D3DC-497A-9121-74F817912694" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-FeatureLeftHandSide-feature-ownedComment" xmi:uuid="725A27D7-D3DC-4B9F-9E0E-74F8D9B3DF1B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureLeftHandSide-feature"/>
          <body>The structural feature being assigned. </body>
        </ownedComment>
        <name>feature</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_feature_featureLeftHandSide"/>
      </ownedAttribute>
      <name>FeatureLeftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ConditionalTestExpression" xmi:uuid="725A27D7-D3DC-4079-9A1E-74F8D3161787" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ConditionalTestExpression-ownedComment" xmi:uuid="725A27D7-D3DC-412D-9ED6-74F8F3698488" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <body>An expression that uses the value of one operand expression to condition the evaluation of one of two other operand expressions. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4167-9139-74F86BBCEDB4" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CE4-93FE-74F816F4217A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-41F2-9287-74F821E34480" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-446B-9003-74F89F0AE127" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4517-94A7-74F863FD7968" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4392-9600-74F87E1B2D7B" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4B9A-9345-74F8B876D189" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-484F-97B1-74F878E7BFC9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-43BB-9871-74F83BBFADB9" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionCondition" xmi:uuid="725A27D7-D3DC-43BF-9211-74F884FBE63A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionCondition-ownedComment" xmi:uuid="725A27D7-D3DC-45AC-9BAF-74F8257291A2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionCondition"/>
          <body>The first operand expression of a conditional-test expression must be of type Boolean and have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionCondition-specification" xmi:uuid="725A27D7-D3DC-4536-92FA-74F8D81325BA" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionCondition</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4E79-9735-74F8DCE0C727" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4FED-93A6-74F8C22A44F6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4F0E-9245-74F87B8607BD" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4AD7-9C1D-74F8B6815833" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConditionalTestExpression"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4CF8-998B-74F83554C53B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsAfter"/>
          <body>If a name is unassigned after the first operand expression and has an assigned source after one of the other operand expression, then it must have an assigned source after both of those expressions. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConditionalTestExpression-conditionalTestExpressionAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4F63-9F1D-74F8455EA322" xmi:type="uml:OpaqueExpression"/>
        <name>conditionalTestExpressionAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-ConditionalTestExpression-generalization" xmi:uuid="725A27D7-D3DC-4C50-9C20-74F8EC2DE5EF" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand1" xmi:uuid="725A27D7-D3DC-4785-9EAB-74F8497F9255" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ConditionalTestExpression-operand1-ownedComment" xmi:uuid="725A27D7-D3DC-41F3-9C28-74F839D2F28A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand1"/>
          <body>The first operand expression, which provides the condition to be tested. </body>
        </ownedComment>
        <name>operand1</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_operand1_conditionalTestExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand2" xmi:uuid="725A27D7-D3DC-4B3B-97F5-74F8C5A0056B" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ConditionalTestExpression-operand2-ownedComment" xmi:uuid="725A27D7-D3DC-4E1A-93C8-74F8EC123174" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand2"/>
          <body>The second operand expression, to be evaluated if the condition is true. </body>
        </ownedComment>
        <name>operand2</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_operand2_conditionalTestExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ConditionalTestExpression-operand3" xmi:uuid="725A27D7-D3DC-49C0-910D-74F83F6FE7FF" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ConditionalTestExpression-operand3-ownedComment" xmi:uuid="725A27D7-D3DC-412B-9C5D-74F8902ADA81" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-operand3"/>
          <body>The third operand expression, to be evaluated if the condition is false. </body>
        </ownedComment>
        <name>operand3</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_operand3_conditionalTestExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ConditionalTestExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4CA1-964C-74F8428C592A" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-ConditionalTestExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4EE0-9737-74F8E56BEEE3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConditionalTestExpression-updateAssignments"/>
          <body>Returns the assignments after the first operand expression, plus assignments for any newly defined local names in the second and third operand expressions. Local names that exist after the first operand expression but are reassigned in the second or third operand expressions are adjusted to have the conditional-test expression as their assigned source. Local names that are newly defined in the second and third operand expressions have the conditional-text expression as their source and a type that is the effective common ancestor (if one exists) of the types from the assignments after each of the second and third operands.  </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ConditionalTestExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4925-90E6-74F8E95B505F" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-ConditionalTestExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4E69-90B9-74F82B0075DD" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-ConditionalTestExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4939-9103-74F8E15EEAB6" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>ConditionalTestExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LiteralExpression" xmi:uuid="725A27D7-D3DC-426C-9060-74F890912BC0" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LiteralExpression-ownedComment" xmi:uuid="725A27D7-D3DC-411F-93F2-74F8EFCF3B00" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LiteralExpression"/>
        <body>An expression that comprises a primitive literal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-LiteralExpression-literalExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-41F2-9868-74F8A930C7D2" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LiteralExpression"/>
        <ownedComment xmi:id="Alf-LiteralExpression-literalExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4178-96D0-74F857E53A91" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LiteralExpression-literalExpressionUpperDerivation"/>
          <body>The multiplicity upper bound of a literal expression is always 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-LiteralExpression-literalExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-40C9-9ED7-74F86C51E12E" xmi:type="uml:OpaqueExpression"/>
        <name>literalExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LiteralExpression-literalExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4CF5-9A66-74F84C659636" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LiteralExpression"/>
        <ownedComment xmi:id="Alf-LiteralExpression-literalExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-495C-9B5A-74F80294D22C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LiteralExpression-literalExpressionLowerDerivation"/>
          <body>The multiplicity lower bound of a literal expression is always 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-LiteralExpression-literalExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4CC2-9D7B-74F8B1801E51" xmi:type="uml:OpaqueExpression"/>
        <name>literalExpressionLowerDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-LiteralExpression-generalization" xmi:uuid="725A27D7-D3DC-438D-90EB-74F8CDF487C6" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <name>LiteralExpression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-InstanceCreationExpression" xmi:uuid="725A27D7-D3DC-47A0-9B7E-74F8CB0FC800" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-InstanceCreationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4150-9FFD-74F8529ADDDB" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <body>An expression used to create a new instance of a class or data type. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation" xmi:uuid="725A27D7-D3DC-4EE1-9931-74F87A8C1A15" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-47A5-9B5F-74F8916D8DC5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation"/>
          <body>An instance creation expression is an object creation if its referent is not a data type. </body>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsObjectCreationDerivation-specification" xmi:uuid="725A27D7-D3DC-4276-96E3-74F8F84DD3EF" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionIsObjectCreationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation" xmi:uuid="725A27D7-D3DC-4AD1-9033-74F8932EEB92" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-40FA-9475-74F8D40609B8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation"/>
          <body>An instance creation expression is constructorless if its referent is a class. </body>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionIsConstructorlessDerivation-specification" xmi:uuid="725A27D7-D3DC-4667-9227-74F855A835B3" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionIsConstructorlessDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4B87-9F32-74F88049967E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C79-9C95-74F8EA698CDE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation"/>
          <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. </body>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4FB7-96F5-74F82E78162B" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-45B5-9B11-74F852DB5E77" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-40A2-9847-74F81F520754" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation"/>
          <body>There is no feature for an instance creation expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-469C-971D-74F848CEC705" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor" xmi:uuid="725A27D7-D3DC-48A7-92E2-74F83C015C78" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-46EA-9897-74F8044498EA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructor-specification" xmi:uuid="725A27D7-D3DC-4B96-9762-74F84A824114" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionConstructor</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality" xmi:uuid="725A27D7-D3DC-4678-961B-74F8BFFCB787" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality-ownedComment" xmi:uuid="725A27D7-D3DC-4906-9136-74F8932C76CF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionConstructorlessLegality-specification" xmi:uuid="725A27D7-D3DC-4002-98E7-74F8079B7D1C" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionConstructorlessLegality</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility" xmi:uuid="725A27D7-D3DC-4CD6-9186-74F88022B911" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility-ownedComment" xmi:uuid="725A27D7-D3DC-47EE-9174-74F8C26A1ACA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionDataTypeCompatibility-specification" xmi:uuid="725A27D7-D3DC-4242-9450-74F83803D30D" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionDataTypeCompatibility</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferent" xmi:uuid="725A27D7-D3DC-40D7-9DCD-74F8FE1BBFFD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InstanceCreationExpression"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferent-ownedComment" xmi:uuid="725A27D7-D3DC-4E83-9850-74F81A9ABB15" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-instanceCreationExpressionReferent"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InstanceCreationExpression-instanceCreationExpressionReferent-specification" xmi:uuid="725A27D7-D3DC-413D-9678-74F8FC58E51F" xmi:type="uml:OpaqueExpression"/>
        <name>instanceCreationExpressionReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-InstanceCreationExpression-generalization" xmi:uuid="725A27D7-D3DC-4ECF-9A35-74F8B7AEEF0B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-InstanceCreationExpression-isConstructorless" xmi:uuid="725A27D7-D3DC-4EC9-9B76-74F8CBBD0524" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-isConstructorless-ownedComment" xmi:uuid="725A27D7-D3DC-4C1E-9A07-74F8DBF0996E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-isConstructorless"/>
          <body>Whether this is a constructorless object creation expression. </body>
        </ownedComment>
        <name>isConstructorless</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InstanceCreationExpression-isObjectCreation" xmi:uuid="725A27D7-D3DC-498E-9028-74F856CF85E7" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-isObjectCreation-ownedComment" xmi:uuid="725A27D7-D3DC-4624-9D9A-74F836BDA75A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-isObjectCreation"/>
          <body>Whether this is an object creation expression or a data value creation expression. </body>
        </ownedComment>
        <name>isObjectCreation</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InstanceCreationExpression-constructor" xmi:uuid="725A27D7-D3DC-4767-9547-74F89BA8A005" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InstanceCreationExpression-constructor-ownedComment" xmi:uuid="725A27D7-D3DC-4C5C-967E-74F8320997B0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-constructor"/>
          <body>The name of the class constructor operation to be invoked or the name of a class or data type. </body>
        </ownedComment>
        <name>constructor</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_constructor_instanceCreationExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-InstanceCreationExpression-parameterElements" xmi:uuid="725A27D7-D3DC-4377-908F-74F8F37C9DA6" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-InvocationExpression-parameterElements"/>
        <ownedComment xmi:id="Alf-InstanceCreationExpression-parameterElements-ownedComment" xmi:uuid="725A27D7-D3DC-4CE8-930A-74F87E526B02" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InstanceCreationExpression-parameterElements"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-InstanceCreationExpression-parameterElements-ownedParameter" xmi:uuid="725A27D7-D3DC-4499-9661-74F8AFF29A74" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-InstanceCreationExpression-parameterElements-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4B29-949C-74F8C36F5534" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-InstanceCreationExpression-parameterElements-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4C87-9E26-74F82A2774AE" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-ElementReference"/>
        </ownedParameter>
        <name>parameterElements</name>
      </ownedOperation>
      <name>InstanceCreationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-InvocationExpression" xmi:uuid="725A27D7-D3DC-4304-9A24-74F8BDC689F1" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-InvocationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4E4F-971D-74F8D100E71F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-InvocationExpression"/>
        <body>An expression denoting the invocation of a behavior or operation, or the sending of a signal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation" xmi:uuid="725A27D7-D3DC-42B7-9069-74F828205011" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-49D4-9D51-74F857CC4530" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation"/>
          <body>An invocation expression is a behavior invocation if its referent is a behavior. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsBehaviorDerivation-specification" xmi:uuid="725A27D7-D3DC-4E93-91A1-74F816BC3CAF" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsBehaviorDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation" xmi:uuid="725A27D7-D3DC-49BB-9471-74F84ED8A09E" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BB3-9049-74F867729396" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation"/>
          <body>An invocation expression is an association end read if its referent is an association end. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsAssociationEndDerivation-specification" xmi:uuid="725A27D7-D3DC-4544-9C7C-74F8EE567937" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsAssociationEndDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsOperationDerivation" xmi:uuid="725A27D7-D3DC-4F78-917D-74F82F2BEA63" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsOperationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F4F-943A-74F869BEB19F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsOperationDerivation"/>
          <body>An invocation expression is an operation call if its referent is an operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsOperationDerivation-specification" xmi:uuid="725A27D7-D3DC-4301-99C8-74F829B6E01E" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsOperationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation" xmi:uuid="725A27D7-D3DC-4C9E-9546-74F825CFA04F" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-487C-968E-74F87CF2836C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation"/>
          <body>An invocation expression is a destructor call either implicitly or if it is an explicit operation call to a destructor operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsDestructorDerivation-specification" xmi:uuid="725A27D7-D3DC-4B08-982B-74F8ED4CF99E" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsDestructorDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation" xmi:uuid="725A27D7-D3DC-4A6E-9D7B-74F8D4F5466C" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-40B1-993B-74F867E9636A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation"/>
          <body>An invocation expression is an implicit object destruction if it has a feature with the name "destroy" and no explicit referents. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsImplicitDerivation-specification" xmi:uuid="725A27D7-D3DC-4395-915D-74F8CB50F9EF" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsImplicitDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionIsSignalDerivation" xmi:uuid="725A27D7-D3DC-4BDC-90FB-74F892468A1F" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionIsSignalDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4554-9CCE-74F89D320F7B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionIsSignalDerivation"/>
          <body>An invocation expression is a signal send if its referent is a signal. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionIsSignalDerivation-specification" xmi:uuid="725A27D7-D3DC-42FD-9CDB-74F842868AB7" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionIsSignalDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionParameterDerivation" xmi:uuid="725A27D7-D3DC-4ED5-9C4C-74F8CCE87D2D" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionParameterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4CB8-9D8F-74F8959D4512" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionParameterDerivation"/>
          <body>The parameters of an invocation expression are given by the result of the parameterElements helper operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionParameterDerivation-specification" xmi:uuid="725A27D7-D3DC-44E7-9457-74F8FCE51016" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionParameterDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4317-9083-74F882807F1C" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4E1A-9D47-74F8613A5845" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionTypeDerivation"/>
          <body>If the 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>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-48A4-95A0-74F8D3AF9563" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4C6B-9F1E-74F8D1A6B4E3" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-49CC-9C82-74F807EF3262" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4D0B-9FAC-74F818B97C52" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-44DB-908C-74F8C1D55F77" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4739-9608-74F8855029A1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4484-9D54-74F8E62A193B" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4C47-97B0-74F88E4796A7" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-41D5-9A39-74F8E54EF959" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-invocationExpressionAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-InvocationExpression-invocationExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4B5E-9DF6-74F8364AE26A" xmi:type="uml:OpaqueExpression"/>
        <name>invocationExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-InvocationExpression-generalization" xmi:uuid="725A27D7-D3DC-4372-97C5-74F8828A5B92" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-InvocationExpression-isBehavior" xmi:uuid="725A27D7-D3DC-4F48-9439-74F8E7E62507" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isBehavior-ownedComment" xmi:uuid="725A27D7-D3DC-4A76-99D5-74F851C2F98E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isBehavior"/>
          <body>Whether this is a behavior invocation or not. </body>
        </ownedComment>
        <name>isBehavior</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-isAssociationEnd" xmi:uuid="725A27D7-D3DC-43CB-9029-74F830B8B775" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isAssociationEnd-ownedComment" xmi:uuid="725A27D7-D3DC-4D6E-969E-74F812EF5A7E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isAssociationEnd"/>
          <body>Whether this is an association read or not. </body>
        </ownedComment>
        <name>isAssociationEnd</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-feature" xmi:uuid="725A27D7-D3DC-462D-9DEF-74F8D9EB4FF6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InvocationExpression-feature-ownedComment" xmi:uuid="725A27D7-D3DC-4745-96C4-74F878079EF4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-feature"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-InvocationExpression-feature-lowerValue" xmi:uuid="725A27D7-D3DC-4502-990A-74F893C48B02" xmi:type="uml:LiteralInteger"/>
        <name>feature</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_feature_invocationExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-tuple" xmi:uuid="725A27D7-D3DC-4C86-96CE-74F82495A9D5" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InvocationExpression-tuple-ownedComment" xmi:uuid="725A27D7-D3DC-444A-98EE-74F8E853EAC4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-tuple"/>
          <body>The tuple for the invocation expression. </body>
        </ownedComment>
        <name>tuple</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Tuple"/>
        <association xmi:idref="Alf-A_tuple_invocation"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-isOperation" xmi:uuid="725A27D7-D3DC-4157-9EFF-74F8141B9DDF" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isOperation-ownedComment" xmi:uuid="725A27D7-D3DC-45D3-92DF-74F82F450180" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isOperation"/>
          <body>Whether this is an operation call or not. </body>
        </ownedComment>
        <name>isOperation</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-isDestructor" xmi:uuid="725A27D7-D3DC-47FD-91F8-74F852F6F2F8" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isDestructor-ownedComment" xmi:uuid="725A27D7-D3DC-4216-9C50-74F8D6E2844B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isDestructor"/>
          <body>If this is an operation call, whether the operation is a destructor. </body>
        </ownedComment>
        <name>isDestructor</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-isImplicit" xmi:uuid="725A27D7-D3DC-4B2E-9C5B-74F874DD9885" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isImplicit-ownedComment" xmi:uuid="725A27D7-D3DC-45A8-9104-74F8ED5C1B2C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isImplicit"/>
          <body>Whether this is an implicit object destruction. </body>
        </ownedComment>
        <name>isImplicit</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-referent" xmi:uuid="725A27D7-D3DC-4656-9055-74F8A9D665FC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InvocationExpression-referent-ownedComment" xmi:uuid="725A27D7-D3DC-422E-9942-74F8C581FE9B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-referent"/>
          <body>The behavior, operation or signal being invoked. The derivation of this property is specific to each kind of invocation expression. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-InvocationExpression-referent-lowerValue" xmi:uuid="725A27D7-D3DC-47BC-94D2-74F8915C1007" xmi:type="uml:LiteralInteger"/>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_invocationExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InvocationExpression-parameter" xmi:uuid="725A27D7-D3DC-4888-9E6A-74F84F9771F2" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-InvocationExpression-parameter-ownedComment" xmi:uuid="725A27D7-D3DC-44FC-9811-74F81BFA4EB2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-parameter"/>
          <body>Element references to the parameters of the referent, in order. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-InvocationExpression-parameter-lowerValue" xmi:uuid="725A27D7-D3DC-4AE8-903E-74F8D181CD26" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-InvocationExpression-parameter-upperValue" xmi:uuid="725A27D7-D3DC-4120-9B7F-74F8223D4B1E" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>parameter</name>
        <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="725A27D7-D3DC-453D-99B4-74F8CD5E36BD" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-InvocationExpression-isSignal-ownedComment" xmi:uuid="725A27D7-D3DC-4B99-9704-74F86EC83B67" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-isSignal"/>
          <body>Whether this is a signal send or not. </body>
        </ownedComment>
        <name>isSignal</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-InvocationExpression-parameterElements" xmi:uuid="725A27D7-D3DC-4037-9D14-74F8C717C6F4" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-InvocationExpression-parameterElements-ownedComment" xmi:uuid="725A27D7-D3DC-4267-907F-74F82E909738" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-parameterElements"/>
          <body>Returns references to the elements that act as the parameters of the referent. If the 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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-InvocationExpression-parameterElements-ownedParameter" xmi:uuid="725A27D7-D3DC-4EB2-9C01-74F857E40D7B" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-InvocationExpression-parameterElements-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-449C-92CD-74F81ADBC641" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-InvocationExpression-parameterElements-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4EF0-9B20-74F855941BF0" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <isOrdered>true</isOrdered>
          <direction>return</direction>
          <type xmi:idref="Alf-ElementReference"/>
        </ownedParameter>
        <name>parameterElements</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-InvocationExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-48AE-9BD8-74F85F139979" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-InvocationExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4C04-988E-74F8CDA05739" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InvocationExpression-updateAssignments"/>
          <body>The assignments after an invocation expression are the same as those after the tuple of the expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-InvocationExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-49A4-90D3-74F805EFBD1E" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-InvocationExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4795-9A48-74F8E18C3CAF" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-InvocationExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4054-9F7A-74F8A0345F2E" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>InvocationExpression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-PropertyAccessExpression" xmi:uuid="725A27D7-D3DC-42D6-9A3B-74F8413FC42F" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PropertyAccessExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4620-98B5-74F8DA57D5BA" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <body>An expression comprising a reference to a structural feature. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-4882-956F-74F853BE90AA" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-46AF-9B29-74F85CE9A4A9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation"/>
          <body>The feature of a property access expression is the structural feature to which its feature reference resolves. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-443B-996D-74F85E5230D3" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4046-9863-74F88B1A2ED7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4291-9A8D-74F82D8BC8ED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation"/>
          <body>The type of a property access expression is the type of the referenced feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-497B-94F7-74F8ADD723A2" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4286-9EC4-74F86BDD0287" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48C2-96D0-74F8B733FCC9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-481F-9651-74F8E337F119" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4825-9B02-74F8B2A51CDB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D06-957C-74F806F888F7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4622-93DA-74F8E5BEDCC1" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution" xmi:uuid="725A27D7-D3DC-4BD4-9D89-74F898DBF177" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution-ownedComment" xmi:uuid="725A27D7-D3DC-4588-9667-74F828D57D90" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution"/>
          <body>The feature reference for a property access expression must resolve to a single structural feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionFeatureResolution-specification" xmi:uuid="725A27D7-D3DC-4925-9B25-74F82C670350" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionFeatureResolution</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4859-9B15-74F85E04E673" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-PropertyAccessExpression"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4494-9A16-74F8F158FE87" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-PropertyAccessExpression-propertyAccessExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-41BC-9551-74F8512E8663" xmi:type="uml:OpaqueExpression"/>
        <name>propertyAccessExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-PropertyAccessExpression-generalization" xmi:uuid="725A27D7-D3DC-4656-9194-74F8D00F8A81" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-PropertyAccessExpression-featureReference" xmi:uuid="725A27D7-D3DC-4B13-98EF-74F85972D7EB" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-PropertyAccessExpression-featureReference-ownedComment" xmi:uuid="725A27D7-D3DC-447F-9A51-74F84D61CF29" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-featureReference"/>
          <body>A reference to a structural feature. </body>
        </ownedComment>
        <name>featureReference</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_featureReference_propertyAccessExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-PropertyAccessExpression-feature" xmi:uuid="725A27D7-D3DC-4BC4-9DE1-74F857C20AE5" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-PropertyAccessExpression-feature-ownedComment" xmi:uuid="725A27D7-D3DC-4491-9A58-74F8BD1D7CBE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-feature"/>
          <body>The referenced structural feature. </body>
        </ownedComment>
        <name>feature</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_feature_propertyAccessExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-PropertyAccessExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4BBD-9C2F-74F8A3CE7BD2" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-PropertyAccessExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4AD7-93EB-74F88AED2EED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyAccessExpression-updateAssignments"/>
          <body>The assignments after a property access expression are the same as those after the target expression of its feature reference. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PropertyAccessExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4F69-9CD9-74F8FB365208" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-PropertyAccessExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-42FA-9D8B-74F8C31C822B" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-PropertyAccessExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-432C-9C26-74F832360FB6" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>PropertyAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NameExpression" xmi:uuid="725A27D7-D3DC-4222-99FE-74F85CCE26D4" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NameExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4D47-99DE-74F8A3B994ED" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NameExpression"/>
        <body>An expression that comprises a name reference. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionAssignmentDerivation" xmi:uuid="725A27D7-D3DC-4D2A-9F2C-74F8ADE264BA" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionAssignmentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C2D-9A24-74F880E5F490" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionAssignmentDerivation"/>
          <body>If the name in a name expression is a local or parameter name, then its assignment is its assigned source before the expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionAssignmentDerivation-specification" xmi:uuid="725A27D7-D3DC-487F-9F32-74F805C73C1B" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionAssignmentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation" xmi:uuid="725A27D7-D3DC-4C3C-9BF7-74F8D1BBEC75" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4612-9442-74F861394B28" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation"/>
          <body>If the name in a name expression resolves to an enumeration literal name, then that is the enumeration literal for the expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionEnumerationLiteralDerivation-specification" xmi:uuid="725A27D7-D3DC-4872-9B4F-74F8F9D1E784" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionEnumerationLiteralDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionPropertyAccessDerivation" xmi:uuid="725A27D7-D3DC-45DA-9D6B-74F8DD83B85E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionPropertyAccessDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D8D-9434-74F899CD8C6C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionPropertyAccessDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionPropertyAccessDerivation-specification" xmi:uuid="725A27D7-D3DC-4FD7-9C2F-74F81356C917" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionPropertyAccessDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4FB8-963F-74F8C26FA39D" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48F5-94C5-74F8558EE498" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionTypeDerivation"/>
          <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 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>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4F5D-9934-74F8A7794FDA" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4282-974B-74F8931EF76B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-449C-9454-74F861C15F05" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionUpperDerivation"/>
          <body>The multiplicity upper bound of a name expression is determined by its name.</body>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4CDA-903E-74F8180669DE" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4E9F-9401-74F87FE80827" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4205-9A71-74F858283B56" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionLowerDerivation"/>
          <body>The multiplicity lower bound of a name expression is determined by its name. </body>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4D6B-961D-74F8BB1326C6" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameExpression-nameExpressionResolution" xmi:uuid="725A27D7-D3DC-49E5-90CD-74F87C53FFED" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameExpression"/>
        <ownedComment xmi:id="Alf-NameExpression-nameExpressionResolution-ownedComment" xmi:uuid="725A27D7-D3DC-4DD4-911C-74F8831C7A45" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-nameExpressionResolution"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameExpression-nameExpressionResolution-specification" xmi:uuid="725A27D7-D3DC-40B7-9DA4-74F8AD2012D5" xmi:type="uml:OpaqueExpression"/>
        <name>nameExpressionResolution</name>
      </ownedRule>
      <generalization xmi:id="Alf-NameExpression-generalization" xmi:uuid="725A27D7-D3DC-4368-988C-74F806E62E34" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NameExpression-enumerationLiteral" xmi:uuid="725A27D7-D3DC-45F7-99ED-74F839BEB3AC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameExpression-enumerationLiteral-ownedComment" xmi:uuid="725A27D7-D3DC-458E-998D-74F8ECFC2EAA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-enumerationLiteral"/>
          <body>The identified enumeration literal, if the referenced name is for an enumeration literal. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NameExpression-enumerationLiteral-lowerValue" xmi:uuid="725A27D7-D3DC-4F23-9479-74F82879D70A" xmi:type="uml:LiteralInteger"/>
        <name>enumerationLiteral</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_enumerationLiteral_nameExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NameExpression-assignment" xmi:uuid="725A27D7-D3DC-4AC4-94BD-74F822037804" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameExpression-assignment-ownedComment" xmi:uuid="725A27D7-D3DC-4349-9ED8-74F8C674B7BE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-assignment"/>
          <body>The assigned source for the referenced name, if the name is a local or parameter name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NameExpression-assignment-lowerValue" xmi:uuid="725A27D7-D3DC-4224-9705-74F84100D637" xmi:type="uml:LiteralInteger"/>
        <name>assignment</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignment_nameExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NameExpression-propertyAccess" xmi:uuid="725A27D7-D3DC-4F35-94EC-74F83501B991" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameExpression-propertyAccess-ownedComment" xmi:uuid="725A27D7-D3DC-45AB-97E4-74F8B8203994" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-propertyAccess"/>
          <body>The equivalent property access expression, if the referenced name disambiguates to a feature reference. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NameExpression-propertyAccess-lowerValue" xmi:uuid="725A27D7-D3DC-454F-9AA0-74F8D0B000E3" xmi:type="uml:LiteralInteger"/>
        <name>propertyAccess</name>
        <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="725A27D7-D3DC-4AAB-9391-74F8A4A44418" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameExpression-name-ownedComment" xmi:uuid="725A27D7-D3DC-4EB9-975E-74F84A11B342" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-name"/>
          <body>The qualified name referenced in this expression. (For a local name, this will actually have no qualification.) </body>
        </ownedComment>
        <name>name</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_name_nameExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-NameExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4BE8-9557-74F8BB4C5CD9" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-NameExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4C59-9522-74F8E5DA6E39" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-NameExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4FE6-9EE5-74F82A493F3E" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-NameExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-45B0-9821-74F8CBA9F438" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-NameExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-434C-9093-74F8EECA9332" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>NameExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-BitStringUnaryExpression" xmi:uuid="725A27D7-D3DC-46A8-9C9C-74F8197920A5" xmi:type="uml:Class">
      <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4222-9EF4-74F8907AEB33" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C95-94B7-74F874DD06ED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation"/>
          <body>A BitString unary expression has type BitString. </body>
        </ownedComment>
        <specification xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-49F7-95C2-74F8CBD33A9C" xmi:type="uml:OpaqueExpression"/>
        <name>bitStringUnaryExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4A6E-9004-74F897299B32" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4144-9CCF-74F80D4DB14A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation"/>
          <body>A BitString unary expression has the same multiplicity lower bound as its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4113-9EEB-74F8441C95B3" xmi:type="uml:OpaqueExpression"/>
        <name>bitStringUnaryExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-40DF-943C-74F8B724F3F3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A4B-93A1-74F851B05F4E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation"/>
          <body>A BitString unary expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4CB2-9B4E-74F8DDE64F92" xmi:type="uml:OpaqueExpression"/>
        <name>bitStringUnaryExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand" xmi:uuid="725A27D7-D3DC-4CFF-9820-74F860D3602B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanUnaryExpression"/>
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand-ownedComment" xmi:uuid="725A27D7-D3DC-4C5C-97C1-74F8E8A32936" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand"/>
          <body>The operand expression of a BitString unary expression must have type BitString or Integer and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionOperand-specification" xmi:uuid="725A27D7-D3DC-4560-9F8A-74F807EA9174" xmi:type="uml:OpaqueExpression"/>
        <name>bitStringUnaryExpressionOperand</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-4777-9D1E-74F8759236E9" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41A9-937A-74F8CB5C5BA8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation"/>
          <body>BitString conversion is required if the operand expression of a BitString unary expression has type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-BitStringUnaryExpression-bitStringUnaryExpressionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4B72-922A-74F89DE6C1B8" xmi:type="uml:OpaqueExpression"/>
        <name>bitStringUnaryExpressionIsBitStringConversionDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-BitStringUnaryExpression-generalization" xmi:uuid="725A27D7-D3DC-487F-9205-74F889447220" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-UnaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BitStringUnaryExpression-isBitStringConversion" xmi:uuid="725A27D7-D3DC-4636-9198-74F89DEF3564" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-BitStringUnaryExpression-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-4971-9433-74F8E856A448" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BitStringUnaryExpression-isBitStringConversion"/>
          <body>Whether BitString conversion is required on the operand expression. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>BitStringUnaryExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Tuple" xmi:uuid="725A27D7-D3DC-45A1-9BE9-74F8F5C55094" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Tuple-ownedComment" xmi:uuid="725A27D7-D3DC-4ECC-9725-74F81F89EFAE" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Tuple"/>
        <body>A list of expressions used to provide the arguments for an invocation. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-Tuple-tupleInputDerivation" xmi:uuid="725A27D7-D3DC-4C16-901C-74F80D652C20" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleInputDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-44DA-9970-74F849049186" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleInputDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleInputDerivation-specification" xmi:uuid="725A27D7-D3DC-488F-9338-74F892084191" xmi:type="uml:OpaqueExpression"/>
        <name>tupleInputDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Tuple-tupleOutputDerivation" xmi:uuid="725A27D7-D3DC-4F4D-92E5-74F894E0ED64" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleOutputDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-42E3-9132-74F8D7A5CE56" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleOutputDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleOutputDerivation-specification" xmi:uuid="725A27D7-D3DC-4026-9DFD-74F895C52936" xmi:type="uml:OpaqueExpression"/>
        <name>tupleOutputDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Tuple-tupleNullInputs" xmi:uuid="725A27D7-D3DC-4ABB-92EC-74F82616A856" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleNullInputs-ownedComment" xmi:uuid="725A27D7-D3DC-4AE4-9A7C-74F8E2717ABB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleNullInputs"/>
          <body>An input parameter may only have a null argument if it has a multiplicity lower bound of 0. </body>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleNullInputs-specification" xmi:uuid="725A27D7-D3DC-4F5F-941D-74F840BBB154" xmi:type="uml:OpaqueExpression"/>
        <name>tupleNullInputs</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Tuple-tupleOutputs" xmi:uuid="725A27D7-D3DC-4D07-92C4-74F873FBC47B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleOutputs-ownedComment" xmi:uuid="725A27D7-D3DC-44D8-9B5A-74F8208DE45B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleOutputs"/>
          <body>An output parameter may only have a null argument if it is an out parameter. </body>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleOutputs-specification" xmi:uuid="725A27D7-D3DC-40B7-9B6D-74F85CED46A4" xmi:type="uml:OpaqueExpression"/>
        <name>tupleOutputs</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Tuple-tupleAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4AEA-9E5F-74F88CBAE209" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4705-9CA6-74F84A324F7B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4022-9630-74F8C37C5679" xmi:type="uml:OpaqueExpression"/>
        <name>tupleAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Tuple-tupleAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4198-9522-74F836CB6810" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Tuple"/>
        <ownedComment xmi:id="Alf-Tuple-tupleAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4DBF-995C-74F8A5C7339C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-tupleAssignmentsAfter"/>
          <body>A name may be assigned in at most one argument expression of a tuple. </body>
        </ownedComment>
        <specification xmi:id="Alf-Tuple-tupleAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4C13-9C3D-74F81BB73C1C" xmi:type="uml:OpaqueExpression"/>
        <name>tupleAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-Tuple-generalization" xmi:uuid="725A27D7-D3DC-4453-957A-74F8C18ED502" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Tuple-input" xmi:uuid="725A27D7-D3DC-43CD-9009-74F8D834D310" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Tuple-input-ownedComment" xmi:uuid="725A27D7-D3DC-43FB-9E86-74F8721DAC14" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-input"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Tuple-input-lowerValue" xmi:uuid="725A27D7-D3DC-421C-97C7-74F8C2DAF1DC" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Tuple-input-upperValue" xmi:uuid="725A27D7-D3DC-436E-94FE-74F8926C8ED7" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>input</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-NamedExpression"/>
        <association xmi:idref="Alf-A_input_tuple"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Tuple-invocation" xmi:uuid="725A27D7-D3DC-4FD9-9E02-74F8DB571FAF" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Tuple-invocation-ownedComment" xmi:uuid="725A27D7-D3DC-4D43-968E-74F8EFB95F3C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-invocation"/>
          <body>The invocation expression of which this tuple is a part. </body>
        </ownedComment>
        <name>invocation</name>
        <type xmi:idref="Alf-InvocationExpression"/>
        <association xmi:idref="Alf-A_tuple_invocation"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Tuple-output" xmi:uuid="725A27D7-D3DC-4EE2-90DA-74F8EA77925A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Tuple-output-ownedComment" xmi:uuid="725A27D7-D3DC-45A8-9368-74F86B62CEC2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Tuple-output"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Tuple-output-lowerValue" xmi:uuid="725A27D7-D3DC-4E9A-96EE-74F8F87F79A0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Tuple-output-upperValue" xmi:uuid="725A27D7-D3DC-4B2E-971E-74F8C005A4FD" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>output</name>
        <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-FeatureInvocationExpression" xmi:uuid="725A27D7-D3DC-4B10-9908-74F8C2E3F6A1" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-FeatureInvocationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4A36-9957-74F838FEBB1F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <body>An invocation of a feature referenced on a sequence of instances. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4A63-9A18-74F8BCB7FB24" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4599-981D-74F842816EA3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4126-950E-74F86E30D9B4" xmi:type="uml:OpaqueExpression"/>
        <name>featureInvocationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-487D-9C87-74F8614462D7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4079-9F4C-74F83B8CCF34" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-49FE-9A28-74F8EA0BB867" xmi:type="uml:OpaqueExpression"/>
        <name>featureInvocationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists" xmi:uuid="725A27D7-D3DC-4B0E-965E-74F8A05A0C27" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists-ownedComment" xmi:uuid="725A27D7-D3DC-4DD8-91CF-74F814218202" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionReferentExists-specification" xmi:uuid="725A27D7-D3DC-430A-9FF5-74F87111BBE5" xmi:type="uml:OpaqueExpression"/>
        <name>featureInvocationExpressionReferentExists</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor" xmi:uuid="725A27D7-D3DC-4FA2-95DD-74F8CC248769" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-414C-93AF-74F88DF3F11C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionAlternativeConstructor-specification" xmi:uuid="725A27D7-D3DC-4A99-9FF9-74F8DEC24418" xmi:type="uml:OpaqueExpression"/>
        <name>featureInvocationExpressionAlternativeConstructor</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor" xmi:uuid="725A27D7-D3DC-43CE-9F0A-74F87B140731" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-FeatureInvocationExpression"/>
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-4D1E-98A6-74F892798D22" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-FeatureInvocationExpression-featureInvocationExpressionImplicitAlternativeConstructor-specification" xmi:uuid="725A27D7-D3DC-46A4-9A82-74F8FE1657BF" xmi:type="uml:OpaqueExpression"/>
        <name>featureInvocationExpressionImplicitAlternativeConstructor</name>
      </ownedRule>
      <generalization xmi:id="Alf-FeatureInvocationExpression-generalization" xmi:uuid="725A27D7-D3DC-4870-9018-74F8399A565C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-FeatureInvocationExpression-target" xmi:uuid="725A27D7-D3DC-414A-9418-74F8624A9720" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-FeatureInvocationExpression-target-ownedComment" xmi:uuid="725A27D7-D3DC-4712-9650-74F84FA3331C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FeatureInvocationExpression-target"/>
          <body>A feature reference to the target feature to be invoked. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-FeatureInvocationExpression-target-lowerValue" xmi:uuid="725A27D7-D3DC-4919-9595-74F8C5DCF748" xmi:type="uml:LiteralInteger"/>
        <name>target</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_target_featureInvocationExpression"/>
      </ownedAttribute>
      <name>FeatureInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-BehaviorInvocationExpression" xmi:uuid="725A27D7-D3DC-43A2-94CC-74F8CB1CCD04" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BehaviorInvocationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-42EB-9DA7-74F864ACFA3F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <body>An invocation of a behavior referenced by name. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4D9D-9A91-74F8A40BB141" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4376-957E-74F80850FCF1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-47C3-9BFC-74F8ABE19CCA" xmi:type="uml:OpaqueExpression"/>
        <name>behaviorInvocationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-4FF9-924D-74F88583139B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4845-9C4C-74F84CD071F5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation"/>
          <body>If the target qualified name disambiguates to a feature reference, then the feature of a behavior invocation expression is that feature reference. </body>
        </ownedComment>
        <specification xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4406-9CCC-74F87066A645" xmi:type="uml:OpaqueExpression"/>
        <name>behaviorInvocationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint" xmi:uuid="725A27D7-D3DC-46F6-968A-74F89E1A5DF8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint-ownedComment" xmi:uuid="725A27D7-D3DC-46FE-9E83-74F8865AF7DB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint"/>
          <body>If the target qualified name does not disambiguate to a feature reference, then it must resolve to a behavior or an association end. 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>
        </ownedComment>
        <specification xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionReferentConstraint-specification" xmi:uuid="725A27D7-D3DC-448B-9AC6-74F85CD85411" xmi:type="uml:OpaqueExpression"/>
        <name>behaviorInvocationExpressionReferentConstraint</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility" xmi:uuid="725A27D7-D3DC-4BE8-9903-74F8B467AE95" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility-ownedComment" xmi:uuid="725A27D7-D3DC-40DF-93F0-74F840D7D99D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionArgumentCompatibility-specification" xmi:uuid="725A27D7-D3DC-4DFD-9EA7-74F89CC63BC4" xmi:type="uml:OpaqueExpression"/>
        <name>behaviorInvocationExpressionArgumentCompatibility</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor" xmi:uuid="725A27D7-D3DC-4EBE-94EB-74F88A6114A5" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BehaviorInvocationExpression"/>
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-441E-9FA0-74F8EAAA1F1C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-BehaviorInvocationExpression-behaviorInvocationExpressionAlternativeConstructor-specification" xmi:uuid="725A27D7-D3DC-4430-9F57-74F8184C6168" xmi:type="uml:OpaqueExpression"/>
        <name>behaviorInvocationExpressionAlternativeConstructor</name>
      </ownedRule>
      <generalization xmi:id="Alf-BehaviorInvocationExpression-generalization" xmi:uuid="725A27D7-D3DC-4FC7-979E-74F863995CDB" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BehaviorInvocationExpression-target" xmi:uuid="725A27D7-D3DC-485A-97DC-74F85AD2004C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-BehaviorInvocationExpression-target-ownedComment" xmi:uuid="725A27D7-D3DC-408A-9D82-74F82239AB0A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BehaviorInvocationExpression-target"/>
          <body>The qualified name of the behavior to be invoked. </body>
        </ownedComment>
        <name>target</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_target_behaviorInvocationExpression"/>
      </ownedAttribute>
      <name>BehaviorInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceElements" xmi:uuid="725A27D7-D3DC-45BF-92DA-74F8B304D0EA" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceElements-ownedComment" xmi:uuid="725A27D7-D3DC-46FD-9BBF-74F84F486ABA" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceElements"/>
        <body>A specification of the elements of a sequence. </body>
      </ownedComment>
      <generalization xmi:id="Alf-SequenceElements-generalization" xmi:uuid="725A27D7-D3DC-4740-9581-74F8A1A52E4C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceElements-upper" xmi:uuid="725A27D7-D3DC-4CFF-9E33-74F89CA97322" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"> </type>
        <ownedComment xmi:id="Alf-SequenceElements-upper-ownedComment" xmi:uuid="725A27D7-D3DC-45F2-9DA9-74F8D698598D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceElements-upper"/>
          <body>The multiplicity upper bound of the elements of the sequence. The derivation for this property is given in the subclasses of SequenceElements. </body>
        </ownedComment>
        <name>upper</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceElements-lower" xmi:uuid="725A27D7-D3DC-4831-929E-74F8ACEA59B1" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"> </type>
        <ownedComment xmi:id="Alf-SequenceElements-lower-ownedComment" xmi:uuid="725A27D7-D3DC-4DEA-924A-74F8A45245A6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceElements-lower"/>
          <body>The multiplicity lower bound of the elements of the sequence. The derivation for this property is given in the subclasses of SequenceElements. </body>
        </ownedComment>
        <name>lower</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>SequenceElements</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-ShiftExpression" xmi:uuid="725A27D7-D3DC-45A8-91D6-74F8EEF2DC2B" xmi:type="uml:Class">
      <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4664-9D0D-74F8A8679CA1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-ShiftExpression-shiftExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-43AD-9084-74F849F6B54B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-shiftExpressionTypeDerivation"/>
          <body>A shift expression has type BitString. </body>
        </ownedComment>
        <specification xmi:id="Alf-ShiftExpression-shiftExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4530-9D9E-74F85BB21FD1" xmi:type="uml:OpaqueExpression"/>
        <name>shiftExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-48F6-98C6-74F8289FE5C6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-ShiftExpression-shiftExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BE2-9F35-74F8C2F6132C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-shiftExpressionLowerDerivation"/>
          <body>A shift expression has a multiplicity lower bound of 0 if the lower bound if either operand expression is 0 and 1 otherwise. </body>
        </ownedComment>
        <specification xmi:id="Alf-ShiftExpression-shiftExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-45E1-9486-74F8B3FEB93E" xmi:type="uml:OpaqueExpression"/>
        <name>shiftExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-45BC-9356-74F885A21F6E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-ShiftExpression-shiftExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4696-920E-74F82BB5EAB1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-shiftExpressionUpperDerivation"/>
          <body>A shift expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ShiftExpression-shiftExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4606-97A2-74F84899772B" xmi:type="uml:OpaqueExpression"/>
        <name>shiftExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionOperands" xmi:uuid="725A27D7-D3DC-4A2E-952F-74F8E140498B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LogicalExpression"/>
        <ownedComment xmi:id="Alf-ShiftExpression-shiftExpressionOperands-ownedComment" xmi:uuid="725A27D7-D3DC-4B6B-9FBD-74F87D4E087F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-shiftExpressionOperands"/>
          <body>The first operand expression of a shift expression must have the type BitString or Integer. The second operand expression must have the type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-ShiftExpression-shiftExpressionOperands-specification" xmi:uuid="725A27D7-D3DC-4071-9B9D-74F8AFF39806" xmi:type="uml:OpaqueExpression"/>
        <name>shiftExpressionOperands</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-423F-9946-74F865C2986E" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B8A-98B8-74F8586BA315" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation"/>
          <body>BitString conversion is required if the first operand expression of a shift expression has type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-ShiftExpression-shiftExpressionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4A0E-9973-74F861D1DAB2" xmi:type="uml:OpaqueExpression"/>
        <name>shiftExpressionIsBitStringConversionDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-ShiftExpression-generalization" xmi:uuid="725A27D7-D3DC-4C81-9105-74F8F5D3D90B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ShiftExpression-isBitStringConversion" xmi:uuid="725A27D7-D3DC-4915-9B30-74F8D33D4937" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ShiftExpression-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-4DAA-9CF0-74F8AD688176" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ShiftExpression-isBitStringConversion"/>
          <body>Whether the first operand expression requires BitString conversion. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>ShiftExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LeftHandSide" xmi:uuid="725A27D7-D3DC-4F76-9844-74F83F7C3010" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LeftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-4AA4-9A55-74F84022AD64" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LeftHandSide"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-LeftHandSide-leftHandSideIndexExpression" xmi:uuid="725A27D7-D3DC-4D13-9A48-74F82BA76E91" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LeftHandSide"/>
        <ownedComment xmi:id="Alf-LeftHandSide-leftHandSideIndexExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4D90-9970-74F843E7B0B7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-leftHandSideIndexExpression"/>
          <body>If a left-hand side has an index, then the index expression must have a multiplicity upper bound no greater than 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-LeftHandSide-leftHandSideIndexExpression-specification" xmi:uuid="725A27D7-D3DC-4802-98A0-74F89A54D2D9" xmi:type="uml:OpaqueExpression"/>
        <name>leftHandSideIndexExpression</name>
      </ownedRule>
      <generalization xmi:id="Alf-LeftHandSide-generalization" xmi:uuid="725A27D7-D3DC-48AA-9D75-74F88C96CF35" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-LeftHandSide-assignmentBefore" xmi:uuid="725A27D7-D3DC-43A3-96CE-74F807F3A643" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LeftHandSide-assignmentBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4181-90D9-74F890182659" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-assignmentBefore"/>
        </ownedComment>
        <lowerValue xmi:id="Alf-LeftHandSide-assignmentBefore-lowerValue" xmi:uuid="725A27D7-D3DC-4F60-99B8-74F86B43A648" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-LeftHandSide-assignmentBefore-upperValue" xmi:uuid="725A27D7-D3DC-4A87-9228-74F81DE0D177" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentBefore</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentBefore_leftHandSide"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-assignmentAfter" xmi:uuid="725A27D7-D3DC-437A-9E19-74F8766009AF" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LeftHandSide-assignmentAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4C32-95EE-74F8288DAED5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-assignmentAfter"/>
          <body>The assignments after the left-hand side. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LeftHandSide-assignmentAfter-lowerValue" xmi:uuid="725A27D7-D3DC-4845-99BA-74F8B10EFE71" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-LeftHandSide-assignmentAfter-upperValue" xmi:uuid="725A27D7-D3DC-44C5-911D-74F83F8B07A6" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentAfter</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentAfter_leftHandSide"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-index" xmi:uuid="725A27D7-D3DC-4809-9A2B-74F8BB44F4DE" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LeftHandSide-index-ownedComment" xmi:uuid="725A27D7-D3DC-4AFB-982B-74F82A917DC4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-index"/>
          <body>An optional expression that evaluates to an index into the values of an ordered sequence. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LeftHandSide-index-lowerValue" xmi:uuid="725A27D7-D3DC-4F63-9DEF-74F8064635A2" xmi:type="uml:LiteralInteger"/>
        <name>index</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_index_leftHandSide"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-referent" xmi:uuid="725A27D7-D3DC-4501-9903-74F85DD2B0E7" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LeftHandSide-referent-ownedComment" xmi:uuid="725A27D7-D3DC-4D21-96C8-74F875E2423A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-referent"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-LeftHandSide-referent-lowerValue" xmi:uuid="725A27D7-D3DC-4E00-9504-74F82F109ED9" xmi:type="uml:LiteralInteger"/>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-type" xmi:uuid="725A27D7-D3DC-4AAE-9733-74F87E91BBD6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LeftHandSide-type-ownedComment" xmi:uuid="725A27D7-D3DC-47D2-94E5-74F89943A91D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-type"/>
          <body>A reference to the element that specifies the statically determined type of this left-hand side (if any). </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LeftHandSide-type-lowerValue" xmi:uuid="725A27D7-D3DC-480A-9D8B-74F8A32E1729" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-lower" xmi:uuid="725A27D7-D3DC-43CA-9850-74F8856AEB3C" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"> </type>
        <ownedComment xmi:id="Alf-LeftHandSide-lower-ownedComment" xmi:uuid="725A27D7-D3DC-4626-90CE-74F8B12003F0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-lower"/>
          <body>The statically determined lower bound of the multiplicity of this left-hand side. </body>
        </ownedComment>
        <name>lower</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LeftHandSide-upper" xmi:uuid="725A27D7-D3DC-4D50-9A20-74F87C79646A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"> </type>
        <ownedComment xmi:id="Alf-LeftHandSide-upper-ownedComment" xmi:uuid="725A27D7-D3DC-4B22-94D2-74F86C7168EF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LeftHandSide-upper"/>
          <body>The statically determined upper bound of the multiplicity of this left-hand side. </body>
        </ownedComment>
        <name>upper</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>LeftHandSide</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-NamedExpression" xmi:uuid="725A27D7-D3DC-4AB4-94CC-74F89DB14237" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NamedExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4E7B-9509-74F899761BF7" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NamedExpression"/>
        <body>A pairing of a parameter name and an argument expression in a tuple. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation" xmi:uuid="725A27D7-D3DC-46DA-9227-74F8794D6415" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-480F-940E-74F8C09D9653" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NamedExpression-namedExpressionIsCollectionConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-40F9-9807-74F8331271EA" xmi:type="uml:OpaqueExpression"/>
        <name>namedExpressionIsCollectionConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-4BEF-92D5-74F8B8D6AFBA" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4017-9001-74F89E6B95AE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation"/>
          <body>Bit string conversion is required if the type of the type of the corresponding parameter is BitString, or a collection class instantiated with a BitString type, and the type of the argument expression is not BitString. </body>
        </ownedComment>
        <specification xmi:id="Alf-NamedExpression-namedExpressionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4B68-9DFC-74F823EEFBBF" xmi:type="uml:OpaqueExpression"/>
        <name>namedExpressionIsBitStringConversionDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-NamedExpression-generalization" xmi:uuid="725A27D7-D3DC-4F4D-93BC-74F88223959A" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NamedExpression-name" xmi:uuid="725A27D7-D3DC-4439-901C-74F87D1BC949" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-NamedExpression-name-ownedComment" xmi:uuid="725A27D7-D3DC-4C6A-9CC9-74F84A4A4CBD" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-name"/>
          <body>The parameter name. </body>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NamedExpression-expression" xmi:uuid="725A27D7-D3DC-4143-9ADF-74F82E26DA37" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamedExpression-expression-ownedComment" xmi:uuid="725A27D7-D3DC-471F-9153-74F844D8203A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-expression"/>
          <body>The argument expression. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_namedExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NamedExpression-index" xmi:uuid="725A27D7-D3DC-4E97-9CB8-74F8D438A41B" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamedExpression-index-ownedComment" xmi:uuid="725A27D7-D3DC-44E4-9E5A-74F851864942" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-index"/>
          <body>An expression whose value gives an index into an ordered parameter. (This is only used in link operation expressions.) </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NamedExpression-index-lowerValue" xmi:uuid="725A27D7-D3DC-4242-9616-74F88DDC3E91" xmi:type="uml:LiteralInteger"/>
        <name>index</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_index_namedExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NamedExpression-isCollectionConversion" xmi:uuid="725A27D7-D3DC-476A-9C29-74F836F14551" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-NamedExpression-isCollectionConversion-ownedComment" xmi:uuid="725A27D7-D3DC-43D2-935F-74F8C0920F28" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-isCollectionConversion"/>
          <body>Whether the argument expression requires collection conversion. </body>
        </ownedComment>
        <name>isCollectionConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NamedExpression-isBitStringConversion" xmi:uuid="725A27D7-D3DC-42E0-92BC-74F8A7F9416E" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-NamedExpression-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-43A7-9631-74F8CB4CC4E5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedExpression-isBitStringConversion"/>
          <body>Whether the argument expression requires bit string conversion. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>NamedExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-UnboundedLiteralExpression" xmi:uuid="725A27D7-D3DC-4B41-99C5-74F8B3084040" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-UnboundedLiteralExpression-ownedComment" xmi:uuid="725A27D7-D3DC-49DF-9BE4-74F87EE9CB26" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-UnboundedLiteralExpression"/>
        <body>An expression that comprises an unbounded value literal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-484A-9A68-74F836E203EE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-UnboundedLiteralExpression"/>
        <ownedComment xmi:id="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D7E-9479-74F8489ACFAB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation"/>
          <body>The type of an unbounded literal expression is UnlimitedNatural. </body>
        </ownedComment>
        <specification xmi:id="Alf-UnboundedLiteralExpression-unboundedLiteralExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4ACE-98E8-74F8C7A7EE88" xmi:type="uml:OpaqueExpression"/>
        <name>unboundedLiteralExpressionTypeDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-UnboundedLiteralExpression-generalization" xmi:uuid="725A27D7-D3DC-433D-9E6B-74F81DC7EC94" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LiteralExpression"/>
      </generalization>
      <name>UnboundedLiteralExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ThisExpression" xmi:uuid="725A27D7-D3DC-4A95-94E6-74F861F05697" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ThisExpression-ownedComment" xmi:uuid="725A27D7-D3DC-425B-91F9-74F8342E56A4" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ThisExpression"/>
        <body>An expression comprising the keyword “this”. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ThisExpression-thisExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4E7F-92D0-74F8CE169394" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ThisExpression"/>
        <ownedComment xmi:id="Alf-ThisExpression-thisExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-449E-9A23-74F851A8B6F7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ThisExpression-thisExpressionTypeDerivation"/>
          <body>The static type of a this expression is the statically determined context classifier for the context in which the this expression occurs. </body>
        </ownedComment>
        <specification xmi:id="Alf-ThisExpression-thisExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4DB4-9804-74F86C9D369C" xmi:type="uml:OpaqueExpression"/>
        <name>thisExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ThisExpression-thisExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-499D-9B2E-74F8DFA1FD51" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ThisExpression"/>
        <ownedComment xmi:id="Alf-ThisExpression-thisExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4111-9047-74F801EE488E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ThisExpression-thisExpressionUpperDerivation"/>
          <body>The multiplicity upper bound of a this expression is always 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ThisExpression-thisExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-462D-94F1-74F89FBC2844" xmi:type="uml:OpaqueExpression"/>
        <name>thisExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ThisExpression-thisExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-477C-9674-74F8D25BD084" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ThisExpression"/>
        <ownedComment xmi:id="Alf-ThisExpression-thisExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4801-923D-74F80F04D81E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ThisExpression-thisExpressionLowerDerivation"/>
          <body>The multiplicity lower bound of a this expression is always 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ThisExpression-thisExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4190-964A-74F8712ACE18" xmi:type="uml:OpaqueExpression"/>
        <name>thisExpressionLowerDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-ThisExpression-generalization" xmi:uuid="725A27D7-D3DC-46C0-9F21-74F8831B59F9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <name>ThisExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassificationExpression" xmi:uuid="725A27D7-D3DC-42FA-98C8-74F82A7ED498" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassificationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-40F9-9E7B-74F86DABAC64" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassificationExpression"/>
        <body>An expression used to test the dynamic type of its operand. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation" xmi:uuid="725A27D7-D3DC-454D-940C-74F880E949FC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4249-95E7-74F87385F460" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation"/>
          <body>A classification expression is direct if its operator is "hastype". </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionIsDirectDerivation-specification" xmi:uuid="725A27D7-D3DC-4C7E-97B0-74F8E6BC00E3" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionIsDirectDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4636-9F1A-74F8BA899AFE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B24-9269-74F8DF6E4C27" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionReferentDerivation"/>
          <body>The referent of a classification expression is the classifier to which the type name resolves. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4DF3-902E-74F8D5134596" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4E4E-9B6F-74F8A3CAE73A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-47CE-9EE3-74F87AAEC2F2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionTypeDerivation"/>
          <body>A classification expression has type Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4527-933C-74F89CC31873" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4E5D-9FCF-74F843260170" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4685-9C4F-74F89F18BD14" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionLowerDerivation"/>
          <body>A classification expression has a multiplicity lower bound that is the same as the lower bound of its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-484F-9770-74F84407C718" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-473C-94C3-74F8C978864B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41BE-9842-74F8FC66C935" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionUpperDerivation"/>
          <body>A classification expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-461F-92E4-74F8F0F04446" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionTypeName" xmi:uuid="725A27D7-D3DC-466C-90F2-74F8BF1A2E35" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionTypeName-ownedComment" xmi:uuid="725A27D7-D3DC-4F07-93CC-74F82848276B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionTypeName"/>
          <body>The type name in a classification expression must resolve to a non-template classifier. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionTypeName-specification" xmi:uuid="725A27D7-D3DC-4F21-9390-74F8FAB1C9A5" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionTypeName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassificationExpression-classificationExpressionOperand" xmi:uuid="725A27D7-D3DC-42FA-945C-74F8FA2701EC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassificationExpression"/>
        <ownedComment xmi:id="Alf-ClassificationExpression-classificationExpressionOperand-ownedComment" xmi:uuid="725A27D7-D3DC-45B9-9DD5-74F80D9FF190" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-classificationExpressionOperand"/>
          <body>The operand expression of a classification expression must have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassificationExpression-classificationExpressionOperand-specification" xmi:uuid="725A27D7-D3DC-430F-91F8-74F8503B7551" xmi:type="uml:OpaqueExpression"/>
        <name>classificationExpressionOperand</name>
      </ownedRule>
      <generalization xmi:id="Alf-ClassificationExpression-generalization" xmi:uuid="725A27D7-D3DC-4CD0-90E2-74F877F2B243" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-UnaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ClassificationExpression-referent" xmi:uuid="725A27D7-D3DC-4CB4-9BBF-74F825FF2EF0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassificationExpression-referent-ownedComment" xmi:uuid="725A27D7-D3DC-4020-93AE-74F8A81E6F4B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-referent"/>
          <body>Whether the test is for the operand to have the given type directly or to only conform to the given type. </body>
        </ownedComment>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_classificationExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassificationExpression-isDirect" xmi:uuid="725A27D7-D3DC-4745-9154-74F8EE210D2B" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ClassificationExpression-isDirect-ownedComment" xmi:uuid="725A27D7-D3DC-4667-9E9D-74F83137F7D4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-isDirect"/>
          <body>Whether the test is for the operand to have the given type directly or to only conform to the given type. </body>
        </ownedComment>
        <name>isDirect</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassificationExpression-typeName" xmi:uuid="725A27D7-D3DC-4A2D-9261-74F83F20A514" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassificationExpression-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-4921-9C91-74F897F83F98" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassificationExpression-typeName"/>
          <body>The name of the type that the operand is to be tested against. </body>
        </ownedComment>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_classificationExpression"/>
      </ownedAttribute>
      <name>ClassificationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SuperInvocationExpression" xmi:uuid="725A27D7-D3DC-467D-9A0E-74F87CBF5114" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SuperInvocationExpression-ownedComment" xmi:uuid="725A27D7-D3DC-419E-9E61-74F8491FDB13" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <body>An invocation expression used to invoke an operation of a superclass. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-44A0-91A6-74F8351DC9F7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-40DB-9271-74F83A393E8B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation"/>
          <body>The referent of a super invocation expression is the method behavior of the operation identified using the overloading resolution rules. </body>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-46A1-98FB-74F8300E56F8" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-4416-99F4-74F8A66E2877" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4624-9AAF-74F89AF51280" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation"/>
          <body>There is no feature for a super invocation. </body>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-41BF-9097-74F81877E05F" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionQualification" xmi:uuid="725A27D7-D3DC-4770-9B3E-74F863EFE489" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionQualification-ownedComment" xmi:uuid="725A27D7-D3DC-429D-9A19-74F8446907F5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionQualification"/>
          <body>If the target has a qualification, then this must resolve to one of the superclasses of the current context class. </body>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionQualification-specification" xmi:uuid="725A27D7-D3DC-4338-97FA-74F8791CF2B3" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionQualification</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget" xmi:uuid="725A27D7-D3DC-42C2-9A7D-74F899325887" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget-ownedComment" xmi:uuid="725A27D7-D3DC-41BE-92FA-74F88DF7BE52" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionImplicitTarget-specification" xmi:uuid="725A27D7-D3DC-48FB-9761-74F870F9D180" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionImplicitTarget</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall" xmi:uuid="725A27D7-D3DC-409E-9B2F-74F8A084E0FE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall-ownedComment" xmi:uuid="725A27D7-D3DC-486D-90E3-74F857BF14E0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionConstructorCall-specification" xmi:uuid="725A27D7-D3DC-4446-9758-74F83F38D533" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionConstructorCall</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall" xmi:uuid="725A27D7-D3DC-454D-9131-74F8A3990ABB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall-ownedComment" xmi:uuid="725A27D7-D3DC-4DC9-929B-74F8A13AD2F1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionDestructorCall-specification" xmi:uuid="725A27D7-D3DC-4A0C-9F55-74F896D88B4D" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionDestructorCall</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionOperation" xmi:uuid="725A27D7-D3DC-4915-98A9-74F8F73B4904" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SuperInvocationExpression"/>
        <ownedComment xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionOperation-ownedComment" xmi:uuid="725A27D7-D3DC-48AC-9CF6-74F8449E5F86" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-superInvocationExpressionOperation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SuperInvocationExpression-superInvocationExpressionOperation-specification" xmi:uuid="725A27D7-D3DC-4173-9819-74F84BEA2F68" xmi:type="uml:OpaqueExpression"/>
        <name>superInvocationExpressionOperation</name>
      </ownedRule>
      <generalization xmi:id="Alf-SuperInvocationExpression-generalization" xmi:uuid="725A27D7-D3DC-4703-971F-74F8CA68A5C3" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-InvocationExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SuperInvocationExpression-target" xmi:uuid="725A27D7-D3DC-4FFC-951D-74F8C8F1F489" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SuperInvocationExpression-target-ownedComment" xmi:uuid="725A27D7-D3DC-41FB-902B-74F830B0AC11" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SuperInvocationExpression-target"/>
          <body>The name of the operation to be invoked, optionally qualified with the name of the appropriate superclass. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SuperInvocationExpression-target-lowerValue" xmi:uuid="725A27D7-D3DC-444C-9111-74F8FDBFE00F" xmi:type="uml:LiteralInteger"/>
        <name>target</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_target_superInvocationExpression"/>
      </ownedAttribute>
      <name>SuperInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-IncrementOrDecrementExpression" xmi:uuid="725A27D7-D3DC-43D4-9DD2-74F8927E2CA2" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4E44-98D0-74F852D6D7E6" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <body>A unary expression with either an increment or decrement operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation" xmi:uuid="725A27D7-D3DC-43B4-92D5-74F82AE06754" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48AD-9AE8-74F86734B32C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentDerivation-specification" xmi:uuid="725A27D7-D3DC-4F55-97CA-74F872CD96E9" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionAssignmentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-4379-94F2-74F86F59F329" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4576-9B73-74F8E417E6EF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation"/>
          <body>An increment or decrement expression has a feature as its operand if the operand is a kind of FeatureLeftHandSide. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4B8F-90DB-74F8570320AA" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionIsFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation" xmi:uuid="725A27D7-D3DC-4F27-9993-74F81F2550C8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-42BA-9940-74F8BF7C8674" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation"/>
          <body>An increment or decrement expression is indexed if its operand is indexed. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsIndexedDerivation-specification" xmi:uuid="725A27D7-D3DC-45BF-9FA1-74F89695F898" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionIsIndexedDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation" xmi:uuid="725A27D7-D3DC-4AA5-9EA4-74F8949285A3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4882-91CA-74F8E8D50CA0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionIsDataValueUpdateDerivation-specification" xmi:uuid="725A27D7-D3DC-42DC-90A3-74F80398BCF9" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionIsDataValueUpdateDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation" xmi:uuid="725A27D7-D3DC-49B9-956B-74F8300DBB8C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4117-9217-74F8AC72B894" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation"/>
          <body>If the operand of an increment or decrement expression is a feature, then the referent for the operand. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-49AC-9E3B-74F817E6758D" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation" xmi:uuid="725A27D7-D3DC-487E-9852-74F8E50BA04C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BA6-9226-74F86DAD07CE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionExpressionDerivation-specification" xmi:uuid="725A27D7-D3DC-4ABE-97A9-74F8C257C52C" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionExpressionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4B24-95FB-74F86F1E91F2" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-42AD-9AD6-74F8ED90D341" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation"/>
          <body>An increment or decrement expression has type Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4704-920F-74F8193DA1BE" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4283-9B6E-74F82BF11B47" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-490B-98B3-74F8CA824964" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation"/>
          <body>An increment or decrement expression has the same multiplicity lower bound as its operand expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4CCF-9814-74F8C719CCEE" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-4138-93BD-74F83E179350" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F56-94B6-74F8EE8C3C6F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation"/>
          <body>An increment or decrement expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-411B-93D3-74F850BA949C" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand" xmi:uuid="725A27D7-D3DC-4598-9EA1-74F8D7F14748" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand-ownedComment" xmi:uuid="725A27D7-D3DC-49FA-9802-74F8889B1523" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand"/>
          <body>The operand expression must have type Integer and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionOperand-specification" xmi:uuid="725A27D7-D3DC-4D0E-9DFC-74F85D11C35E" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionOperand</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-43D8-9C9C-74F843CEC6FF" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4727-9228-74F85065F718" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore"/>
          <body>The assignments before the operand of an increment or decrement expression are the same as those before the increment or decrement expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-IncrementOrDecrementExpression-incrementOrDecrementExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4AF0-94C9-74F82013006E" xmi:type="uml:OpaqueExpression"/>
        <name>incrementOrDecrementExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-IncrementOrDecrementExpression-generalization" xmi:uuid="725A27D7-D3DC-465E-9838-74F83D87AC09" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-assignment" xmi:uuid="725A27D7-D3DC-4049-93A2-74F89872D87E" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-assignment-ownedComment" xmi:uuid="725A27D7-D3DC-4409-93DF-74F8AF70EC8D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-assignment"/>
          <body>If the operand is a name, then the new assigned source for that name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-IncrementOrDecrementExpression-assignment-lowerValue" xmi:uuid="725A27D7-D3DC-4F11-9776-74F83AC85F3D" xmi:type="uml:LiteralInteger"/>
        <name>assignment</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignment_incrementOrDecrementExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-operand" xmi:uuid="725A27D7-D3DC-4FD8-9483-74F84BCFBEAD" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-operand-ownedComment" xmi:uuid="725A27D7-D3DC-4997-9A9B-74F8150E2B14" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-operand"/>
          <body>The operand, which must have the form of an assignment left-hand side. </body>
        </ownedComment>
        <name>operand</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_operand_incrementOrDecrementExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-expression" xmi:uuid="725A27D7-D3DC-4532-9ABD-74F89CDD741E" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4679-9C44-74F85FACA2AA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-expression"/>
          <body>The effective expression used to obtain the original value of the operand to be updated. </body>
        </ownedComment>
        <name>expression</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_incrementOrDecrementExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-feature" xmi:uuid="725A27D7-D3DC-48D6-93B5-74F81E66C713" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-feature-ownedComment" xmi:uuid="725A27D7-D3DC-495A-98F1-74F8356E1DD6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-feature"/>
          <body>If the operand is a feature, then the referent for that feature. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-IncrementOrDecrementExpression-feature-lowerValue" xmi:uuid="725A27D7-D3DC-4D1B-9BB0-74F81FD72635" xmi:type="uml:LiteralInteger"/>
        <name>feature</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_feature_incrementOrDecrementExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isPrefix" xmi:uuid="725A27D7-D3DC-48AD-96C5-74F8F00B675A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isPrefix-ownedComment" xmi:uuid="725A27D7-D3DC-4252-9440-74F83E7AAB42" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isPrefix"/>
          <body>Whether the operator is being used as a prefix or a postfix. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-IncrementOrDecrementExpression-isPrefix-defaultValue" xmi:uuid="725A27D7-D3DC-438F-9E86-74F82D61810E" xmi:type="uml:LiteralBoolean"/>
        <name>isPrefix</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isFeature" xmi:uuid="725A27D7-D3DC-4203-9292-74F87EB1CCFC" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isFeature-ownedComment" xmi:uuid="725A27D7-D3DC-4099-94CB-74F8786D00FC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isFeature"/>
          <body>Whether the operand is a feature or not. </body>
        </ownedComment>
        <name>isFeature</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isIndexed" xmi:uuid="725A27D7-D3DC-481D-9F14-74F81D2B8023" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isIndexed-ownedComment" xmi:uuid="725A27D7-D3DC-4A93-917A-74F8CFA526D7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isIndexed"/>
          <body>If the operand is a feature, whether it has an index or not. </body>
        </ownedComment>
        <name>isIndexed</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IncrementOrDecrementExpression-isDataValueUpdate" xmi:uuid="725A27D7-D3DC-4C92-9DBD-74F869F4AE2A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-isDataValueUpdate-ownedComment" xmi:uuid="725A27D7-D3DC-4E4A-941E-74F80F712CC0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-isDataValueUpdate"/>
          <body>Whether this expression updates an attribute of a data value held in a local name or parameter. </body>
        </ownedComment>
        <name>isDataValueUpdate</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4FBA-9B7C-74F8DCD96CDF" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-42E1-948B-74F851AF2BD2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IncrementOrDecrementExpression-updateAssignments"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-459D-9C5B-74F8F14F9386" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4DC7-950A-74F8D6757842" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-IncrementOrDecrementExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-4044-9B12-74F85902750F" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>IncrementOrDecrementExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-BooleanLiteralExpression" xmi:uuid="725A27D7-D3DC-465D-9D9C-74F85243A3FA" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BooleanLiteralExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4A8C-9EBB-74F8BDB6A167" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BooleanLiteralExpression"/>
        <body>An expression that comprises a Boolean literal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4D95-9AE2-74F8557D7831" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BooleanLiteralExpression"/>
        <ownedComment xmi:id="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-43B9-967B-74F88198D292" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation"/>
          <body>The type of a boolean literal expression is Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-BooleanLiteralExpression-booleanLiteralExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-46E9-94F2-74F884684F5A" xmi:type="uml:OpaqueExpression"/>
        <name>booleanLiteralExpressionTypeDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-BooleanLiteralExpression-generalization" xmi:uuid="725A27D7-D3DC-4058-96FC-74F894E387D7" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LiteralExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BooleanLiteralExpression-image" xmi:uuid="725A27D7-D3DC-44D0-95ED-74F830A7084B" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-BooleanLiteralExpression-image-ownedComment" xmi:uuid="725A27D7-D3DC-4396-9E9A-74F8CAA441B5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BooleanLiteralExpression-image"/>
          <body>The textual image of the literal token for this expression. </body>
        </ownedComment>
        <name>image</name>
      </ownedAttribute>
      <name>BooleanLiteralExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NamedTuple" xmi:uuid="725A27D7-D3DC-4124-9A97-74F8AB1F6F35" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NamedTuple-ownedComment" xmi:uuid="725A27D7-D3DC-49F4-9100-74F8D0AA6B76" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NamedTuple"/>
        <body>A tuple in which the arguments are matched to parameters by name. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NamedTuple-namedTupleArgumentNames" xmi:uuid="725A27D7-D3DC-4EC6-9C33-74F8DABE5CB3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NamedTuple"/>
        <ownedComment xmi:id="Alf-NamedTuple-namedTupleArgumentNames-ownedComment" xmi:uuid="725A27D7-D3DC-407B-932C-74F8835FB9DA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedTuple-namedTupleArgumentNames"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NamedTuple-namedTupleArgumentNames-specification" xmi:uuid="725A27D7-D3DC-49E3-98D0-74F83A9DBEA8" xmi:type="uml:OpaqueExpression"/>
        <name>namedTupleArgumentNames</name>
      </ownedRule>
      <generalization xmi:id="Alf-NamedTuple-generalization" xmi:uuid="725A27D7-D3DC-4571-94C2-74F84BB20EC2" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Tuple"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NamedTuple-namedExpression" xmi:uuid="725A27D7-D3DC-49AD-9BE5-74F80DC978AF" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamedTuple-namedExpression-ownedComment" xmi:uuid="725A27D7-D3DC-416E-96DE-74F8368B59AA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamedTuple-namedExpression"/>
          <body>The argument expressions for this tuple paired with the corresponding parameter names. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NamedTuple-namedExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4A08-9D28-74F8B2C8A6F8" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-NamedTuple-namedExpression-upperValue" xmi:uuid="725A27D7-D3DC-474D-9832-74F812EEAED5" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>namedExpression</name>
        <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-NaturalLiteralExpression" xmi:uuid="725A27D7-D3DC-4931-97E9-74F80C80DC6F" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NaturalLiteralExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4468-9FEB-74F84FA45F9A" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NaturalLiteralExpression"/>
        <body>An expression that comprises a natural literal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4C73-920E-74F812871008" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NaturalLiteralExpression"/>
        <ownedComment xmi:id="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4691-9AC4-74F84588449F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NaturalLiteralExpression-naturalLiteralExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4515-9FA3-74F8B739084D" xmi:type="uml:OpaqueExpression"/>
        <name>naturalLiteralExpressionTypeDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-NaturalLiteralExpression-generalization" xmi:uuid="725A27D7-D3DC-4DA9-9C3B-74F877869564" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LiteralExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NaturalLiteralExpression-image" xmi:uuid="725A27D7-D3DC-4CE2-9BB7-74F8B3C48794" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-NaturalLiteralExpression-image-ownedComment" xmi:uuid="725A27D7-D3DC-458B-9D6E-74F8FE653543" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NaturalLiteralExpression-image"/>
          <body>The textual image of the literal token for this expression. </body>
        </ownedComment>
        <name>image</name>
      </ownedAttribute>
      <name>NaturalLiteralExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceRange" xmi:uuid="725A27D7-D3DC-4A9F-9AEF-74F8EEA97B55" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceRange-ownedComment" xmi:uuid="725A27D7-D3DC-42D8-9992-74F8367F80FA" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceRange"/>
        <body>A specification of the elements of a sequence as a range of integers. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeLowerDerivation" xmi:uuid="725A27D7-D3DC-4968-999B-74F8F6A11487" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceRange"/>
        <ownedComment xmi:id="Alf-SequenceRange-sequenceRangeLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-454A-9747-74F8B7BB8A0A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-sequenceRangeLowerDerivation"/>
          <body>The multiplicity lower bound of a sequence range is 0. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceRange-sequenceRangeLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4C25-93E4-74F880F12DBF" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceRangeLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeUpperDerivation" xmi:uuid="725A27D7-D3DC-4E33-9856-74F8D71B4288" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceRange"/>
        <ownedComment xmi:id="Alf-SequenceRange-sequenceRangeUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-49F3-91EC-74F8F23A22C3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-sequenceRangeUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceRange-sequenceRangeUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4D26-9DE8-74F8B4BA6B78" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceRangeUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeExpressionMultiplicity" xmi:uuid="725A27D7-D3DC-45E2-99C7-74F86643C00E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceRange"/>
        <ownedComment xmi:id="Alf-SequenceRange-sequenceRangeExpressionMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-4217-940D-74F886F89BCA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-sequenceRangeExpressionMultiplicity"/>
          <body>Both expression in a sequence range must have a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceRange-sequenceRangeExpressionMultiplicity-specification" xmi:uuid="725A27D7-D3DC-44D0-9730-74F8A2D92A70" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceRangeExpressionMultiplicity</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceRange-sequenceRangeAssignments" xmi:uuid="725A27D7-D3DC-45F3-93D8-74F8B75665AA" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceRange"/>
        <ownedComment xmi:id="Alf-SequenceRange-sequenceRangeAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4ED8-9753-74F846A4EA94" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-sequenceRangeAssignments"/>
          <body>A local name may be defined or reassigned in at most one of the expressions of a sequence range. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceRange-sequenceRangeAssignments-specification" xmi:uuid="725A27D7-D3DC-4769-92B2-74F85F52E0D3" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceRangeAssignments</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceRange-generalization" xmi:uuid="725A27D7-D3DC-4F44-966F-74F8A474CBAB" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceElements"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceRange-rangeLower" xmi:uuid="725A27D7-D3DC-425B-901B-74F8CCBBBE6D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceRange-rangeLower-ownedComment" xmi:uuid="725A27D7-D3DC-40EF-9FF1-74F8EB144D3C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-rangeLower"/>
          <body>The expression whose value gives the lower bound for the range. </body>
        </ownedComment>
        <name>rangeLower</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_rangeLower_sequenceRange"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceRange-rangeUpper" xmi:uuid="725A27D7-D3DC-4346-9978-74F8436A02BC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceRange-rangeUpper-ownedComment" xmi:uuid="725A27D7-D3DC-4636-9611-74F8218A1FBF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceRange-rangeUpper"/>
          <body>The expression whose value gives the upper bound for the range. </body>
        </ownedComment>
        <name>rangeUpper</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_rangeUpper_sequenceRange"/>
      </ownedAttribute>
      <name>SequenceRange</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NameLeftHandSide" xmi:uuid="725A27D7-D3DC-4126-98A1-74F81D2B8130" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NameLeftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-462C-95AB-74F84D4B4045" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NameLeftHandSide"/>
        <body>A left-hand side that is a name. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation" xmi:uuid="725A27D7-D3DC-4D8A-90AA-74F843C21AB6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B09-9FCA-74F8501EE755" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentAfterDerivation-specification" xmi:uuid="725A27D7-D3DC-4899-9D9B-74F83F543D66" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideAssignmentAfterDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment" xmi:uuid="725A27D7-D3DC-4179-9339-74F8D5725500" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment-ownedComment" xmi:uuid="725A27D7-D3DC-480D-9072-74F82F807D7F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetAssignment-specification" xmi:uuid="725A27D7-D3DC-4DFD-9367-74F8B80E803E" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideTargetAssignment</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore" xmi:uuid="725A27D7-D3DC-46C3-9524-74F8F7C60178" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-42B2-9B00-74F8C0C4C8B6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-42CF-95FD-74F85D8A616C" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation" xmi:uuid="725A27D7-D3DC-42F5-92F0-74F823211185" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4245-92C8-74F8DF75D40E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4C32-976F-74F893B07F64" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation" xmi:uuid="725A27D7-D3DC-4FEC-9B2C-74F89B78E85F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-43D3-99F7-74F80406A37B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation"/>
          <body>If a name left-hand side is indexed, then its lower bound is 1. 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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4A4E-990F-74F8DBECD2BF" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation" xmi:uuid="725A27D7-D3DC-4247-9F9F-74F87F7E3FE0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A56-911D-74F824105F6D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4D23-9666-74F8C5F5B060" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation" xmi:uuid="725A27D7-D3DC-4B38-9527-74F876D1973C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41A5-967E-74F8FA60FF74" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-430B-9DF1-74F8CB12DD47" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution" xmi:uuid="725A27D7-D3DC-4951-92D4-74F8C6819055" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution-ownedComment" xmi:uuid="725A27D7-D3DC-4F76-96F5-74F88B110015" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideTargetResolution-specification" xmi:uuid="725A27D7-D3DC-4EAE-98F8-74F8947B7E00" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideTargetResolution</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature" xmi:uuid="725A27D7-D3DC-48DE-9A6C-74F8C5717914" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature-ownedComment" xmi:uuid="725A27D7-D3DC-47E4-99A4-74F88432CE39" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideIndexedFeature-specification" xmi:uuid="725A27D7-D3DC-4597-9DD4-74F870E01348" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideIndexedFeature</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget" xmi:uuid="725A27D7-D3DC-4916-962E-74F889CE9885" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NameLeftHandSide"/>
        <ownedComment xmi:id="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget-ownedComment" xmi:uuid="725A27D7-D3DC-436C-9523-74F8708D5E4F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget"/>
          <body>The target of a name left-hand side must not have a template binding. </body>
        </ownedComment>
        <specification xmi:id="Alf-NameLeftHandSide-nameLeftHandSideNontemplateTarget-specification" xmi:uuid="725A27D7-D3DC-4316-9287-74F85D3769FD" xmi:type="uml:OpaqueExpression"/>
        <name>nameLeftHandSideNontemplateTarget</name>
      </ownedRule>
      <generalization xmi:id="Alf-NameLeftHandSide-generalization" xmi:uuid="725A27D7-D3DC-4FF5-92DD-74F8E45CDE4C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-LeftHandSide"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NameLeftHandSide-target" xmi:uuid="725A27D7-D3DC-4115-9FC2-74F8C7DEDAC0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameLeftHandSide-target-ownedComment" xmi:uuid="725A27D7-D3DC-4430-985A-74F8B7EBFF96" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameLeftHandSide-target"/>
          <body>The name that is the target of the assignment. </body>
        </ownedComment>
        <name>target</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_target_nameLeftHandSide"/>
      </ownedAttribute>
      <name>NameLeftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-OutputNamedExpression" xmi:uuid="725A27D7-D3DC-406C-9A19-74F84E81E15D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-OutputNamedExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4A98-9FA5-74F8833ED5EC" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-OutputNamedExpression"/>
        <body>A named argument expression for an output parameter. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation" xmi:uuid="725A27D7-D3DC-4538-98AD-74F8D5C3E6EC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-OutputNamedExpression"/>
        <ownedComment xmi:id="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-453F-964E-74F8F14F3A0F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OutputNamedExpression-outputNamedExpressionLeftHandSideDerivation-specification" xmi:uuid="725A27D7-D3DC-4267-9771-74F887CAEE9C" xmi:type="uml:OpaqueExpression"/>
        <name>outputNamedExpressionLeftHandSideDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OutputNamedExpression-outputNamedExpressionForm" xmi:uuid="725A27D7-D3DC-4BCA-9E03-74F8F7DE8A10" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-OutputNamedExpression"/>
        <ownedComment xmi:id="Alf-OutputNamedExpression-outputNamedExpressionForm-ownedComment" xmi:uuid="725A27D7-D3DC-497B-99CB-74F8D87B586C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OutputNamedExpression-outputNamedExpressionForm"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OutputNamedExpression-outputNamedExpressionForm-specification" xmi:uuid="725A27D7-D3DC-40C3-9AE8-74F80F418B66" xmi:type="uml:OpaqueExpression"/>
        <name>outputNamedExpressionForm</name>
      </ownedRule>
      <generalization xmi:id="Alf-OutputNamedExpression-generalization" xmi:uuid="725A27D7-D3DC-4352-91FA-74F860A8FA64" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-NamedExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-OutputNamedExpression-leftHandSide" xmi:uuid="725A27D7-D3DC-48AC-9B4B-74F8923BA4EE" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-OutputNamedExpression-leftHandSide-ownedComment" xmi:uuid="725A27D7-D3DC-4FC9-9D9D-74F84BA0CEA7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OutputNamedExpression-leftHandSide"/>
          <body>The argument expression considered as an assignment left-hand side. </body>
        </ownedComment>
        <name>leftHandSide</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_leftHandSide_outputNamedExpression"/>
      </ownedAttribute>
      <name>OutputNamedExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-UnaryExpression" xmi:uuid="725A27D7-D3DC-443C-95C8-74F89C9A893D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-UnaryExpression-ownedComment" xmi:uuid="725A27D7-D3DC-433E-91B8-74F8765AB91D" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-UnaryExpression"/>
        <body>An expression consisting of an operator acting on a single operand expression. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-UnaryExpression-unaryExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4FD5-9E9A-74F853F0DD6B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-UnaryExpression"/>
        <ownedComment xmi:id="Alf-UnaryExpression-unaryExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4D8E-9BB7-74F8F3666851" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnaryExpression-unaryExpressionAssignmentsBefore"/>
          <body>The assignments before the operand of a unary expression are the same as those before the unary expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-UnaryExpression-unaryExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-42EB-9313-74F8A6682876" xmi:type="uml:OpaqueExpression"/>
        <name>unaryExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-UnaryExpression-generalization" xmi:uuid="725A27D7-D3DC-4712-957F-74F8A1B3AA8C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-UnaryExpression-operator" xmi:uuid="725A27D7-D3DC-42C4-9538-74F89026CAB1" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-UnaryExpression-operator-ownedComment" xmi:uuid="725A27D7-D3DC-4558-9B3A-74F8A5667DDA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnaryExpression-operator"/>
          <body>The symbol representing the operator. </body>
        </ownedComment>
        <name>operator</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnaryExpression-operand" xmi:uuid="725A27D7-D3DC-4616-95E6-74F89FABE759" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-UnaryExpression-operand-ownedComment" xmi:uuid="725A27D7-D3DC-42AF-9D68-74F853073DD3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnaryExpression-operand"/>
          <body>The expression giving the operand. </body>
        </ownedComment>
        <name>operand</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_operand_unaryExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-UnaryExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-4217-9590-74F82C97990E" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-UnaryExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4FD9-9E4C-74F8E25B4E0F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnaryExpression-updateAssignments"/>
          <body>By default, the assignments after a unary expression are the same as those after its operand expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-UnaryExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-425F-9094-74F8E917E2F7" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-UnaryExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-49CF-9392-74F85E363BDE" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-UnaryExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-410F-9023-74F86008A467" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>UnaryExpression</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceReductionExpression" xmi:uuid="725A27D7-D3DC-4A06-9233-74F8AE1410B1" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceReductionExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4166-9935-74F874184B92" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <body>An expression used to reduce a sequence of values effectively by inserting a binary operation between the values. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation" xmi:uuid="725A27D7-D3DC-4348-9B89-74F8EAD45572" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4ABC-92F2-74F825A47F50" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation"/>
          <body>The referent for a sequence reduction expression is the behavior denoted by the behavior name of the expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-477C-9CA2-74F88E391647" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4BC9-954A-74F8FAB66540" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-471C-9B84-74F8234E674C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation"/>
          <body>A sequence reduction expression has the same type as its primary expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-401D-9DF7-74F803C280B0" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-449F-9ECD-74F82005904E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4EBC-9319-74F8A24315C8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation"/>
          <body>A sequence reduction expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4FDC-9CB3-74F89B540C5D" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-4FC4-9CB6-74F840028AB0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D9C-92A9-74F8716B0040" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation"/>
          <body>A sequence reduction expression has a multiplicity lower bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4890-92AA-74F8DD3126D2" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior" xmi:uuid="725A27D7-D3DC-4C79-983C-74F8D74827F1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior-ownedComment" xmi:uuid="725A27D7-D3DC-49B7-9ABD-74F84FEF1B65" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior"/>
          <body>The behavior name in a sequence reduction expression must denote a behavior. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehavior-specification" xmi:uuid="725A27D7-D3DC-4DAD-9E1A-74F86E95D2B8" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionBehavior</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters" xmi:uuid="725A27D7-D3DC-46C1-9E61-74F8B0F78A40" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters-ownedComment" xmi:uuid="725A27D7-D3DC-414D-9EA6-74F827194DDC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionBehaviorParameters-specification" xmi:uuid="725A27D7-D3DC-4C6B-9FF8-74F8C3D3C7FD" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionBehaviorParameters</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4F05-9902-74F83E9B47AE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceReductionExpression"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4900-99C4-74F81CD1DC7C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore"/>
          <body>The assignments before the target expression of a sequence reduction expression are the same as the assignments before the sequence reduction expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-SequenceReductionExpression-sequenceReductionExpressionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-45A3-9769-74F8D3C8C9DC" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceReductionExpressionAssignmentsBefore</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceReductionExpression-generalization" xmi:uuid="725A27D7-D3DC-4D8C-97F6-74F873163E00" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Expression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceReductionExpression-referent" xmi:uuid="725A27D7-D3DC-474E-9868-74F889333923" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceReductionExpression-referent-ownedComment" xmi:uuid="725A27D7-D3DC-4F0B-98A2-74F8633431AE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-referent"/>
          <body>A reference to the behavior to be used as the reducer. </body>
        </ownedComment>
        <name>referent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_sequenceReductionExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceReductionExpression-isOrdered" xmi:uuid="725A27D7-D3DC-4161-9850-74F806381BAA" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-isOrdered-ownedComment" xmi:uuid="725A27D7-D3DC-447C-96D8-74F8D5C68DE1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-isOrdered"/>
          <body>Whether this is an ordered reduction or not. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-SequenceReductionExpression-isOrdered-defaultValue" xmi:uuid="725A27D7-D3DC-491F-9967-74F84AF71849" xmi:type="uml:LiteralBoolean"/>
        <name>isOrdered</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceReductionExpression-primary" xmi:uuid="725A27D7-D3DC-4108-9583-74F8BE9C9568" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceReductionExpression-primary-ownedComment" xmi:uuid="725A27D7-D3DC-4F83-905A-74F89C212D6C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-primary"/>
          <body>The target class name or primary expression for the reduction. </body>
        </ownedComment>
        <name>primary</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-ExtentOrExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceReductionExpression"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SequenceReductionExpression-behaviorName" xmi:uuid="725A27D7-D3DC-4ACE-9FD9-74F8F0622007" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceReductionExpression-behaviorName-ownedComment" xmi:uuid="725A27D7-D3DC-445B-9E1E-74F856EEF476" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-behaviorName"/>
          <body>The name of the behavior to be used as the reducer. </body>
        </ownedComment>
        <name>behaviorName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_behaviorName_sequenceReductionExpression"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-SequenceReductionExpression-updateAssignments" xmi:uuid="725A27D7-D3DC-44CA-90F4-74F89A289223" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Expression-updateAssignments"/>
        <ownedComment xmi:id="Alf-SequenceReductionExpression-updateAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4177-9B43-74F828188ACE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceReductionExpression-updateAssignments"/>
          <body>The assignments after a sequence reduction expression are the same as after its primary expression. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SequenceReductionExpression-updateAssignments-ownedParameter" xmi:uuid="725A27D7-D3DC-4589-982B-74F83784C6EE" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SequenceReductionExpression-updateAssignments-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-41D0-99C2-74F8E11882C6" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SequenceReductionExpression-updateAssignments-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-49F7-90FD-74F851609CC3" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>updateAssignments</name>
      </ownedOperation>
      <name>SequenceReductionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NameBinding" xmi:uuid="725A27D7-D3DC-4BC0-913A-74F80117FD6C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NameBinding-ownedComment" xmi:uuid="725A27D7-D3DC-468D-9E96-74F811F1E9C9" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NameBinding"/>
        <body>An unqualified name, optionally with a template binding. </body>
      </ownedComment>
      <generalization xmi:id="Alf-NameBinding-generalization" xmi:uuid="725A27D7-D3DC-4B85-9CF7-74F834BB8C63" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NameBinding-binding" xmi:uuid="725A27D7-D3DC-4122-98EE-74F83C100B39" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NameBinding-binding-ownedComment" xmi:uuid="725A27D7-D3DC-4D57-9343-74F84429BF7A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameBinding-binding"/>
          <body>The template binding to be used, if the name denotes a template. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NameBinding-binding-lowerValue" xmi:uuid="725A27D7-D3DC-4CAC-9CBF-74F821C3FC1C" xmi:type="uml:LiteralInteger"/>
        <name>binding</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-TemplateBinding"/>
        <association xmi:idref="Alf-A_binding_nameBinding"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NameBinding-name" xmi:uuid="725A27D7-D3DC-4120-90ED-74F8F45C6668" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-NameBinding-name-ownedComment" xmi:uuid="725A27D7-D3DC-4193-938D-74F89441B9A3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NameBinding-name"/>
          <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>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <name>NameBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SequenceExpressionList" xmi:uuid="725A27D7-D3DC-450E-93C2-74F8B89EC216" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SequenceExpressionList-ownedComment" xmi:uuid="725A27D7-D3DC-45D6-9232-74F8C5E1089A" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SequenceExpressionList"/>
        <body>A specification of the elements of a sequence using a list of expressions. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation" xmi:uuid="725A27D7-D3DC-4490-9E9E-74F81629A4D9" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpressionList"/>
        <ownedComment xmi:id="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-47CC-9336-74F8B5FEFAE2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpressionList-sequenceExpressionListLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4BE7-9B02-74F87E688292" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpressionListLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation" xmi:uuid="725A27D7-D3DC-4AE2-9AE9-74F895261648" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SequenceExpressionList"/>
        <ownedComment xmi:id="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4743-9E9B-74F895E8F46E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SequenceExpressionList-sequenceExpressionListUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-45B6-9679-74F884652187" xmi:type="uml:OpaqueExpression"/>
        <name>sequenceExpressionListUpperDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-SequenceExpressionList-generalization" xmi:uuid="725A27D7-D3DC-4DEA-9168-74F8E84D80BA" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SequenceElements"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SequenceExpressionList-element" xmi:uuid="725A27D7-D3DC-4345-9925-74F8E1498F2C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SequenceExpressionList-element-ownedComment" xmi:uuid="725A27D7-D3DC-4ED2-9FDB-74F8FE15E7A1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SequenceExpressionList-element"/>
          <body>The list of expressions whose values determine the elements of the sequence. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SequenceExpressionList-element-lowerValue" xmi:uuid="725A27D7-D3DC-4731-9181-74F8A6723832" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-SequenceExpressionList-element-upperValue" xmi:uuid="725A27D7-D3DC-46D9-9F0D-74F80AB23943" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>element</name>
        <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-RelationalExpression" xmi:uuid="725A27D7-D3DC-449F-9DC4-74F854A231AE" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-RelationalExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4297-9813-74F840767579" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-RelationalExpression"/>
        <body>A binary expression with a relational operator. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation" xmi:uuid="725A27D7-D3DC-45D7-90D5-74F8F1E89D72" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-RelationalExpression"/>
        <ownedComment xmi:id="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-44E0-9419-74F8B6785A69" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation"/>
          <body>A relational expression is an UnlimitedNatural comparison if either one of its operands has type UnlimitedNatural. </body>
        </ownedComment>
        <specification xmi:id="Alf-RelationalExpression-relationalExpressionIsUnlimitedNaturalDerivation-specification" xmi:uuid="725A27D7-D3DC-4F6D-924C-74F8690971DB" xmi:type="uml:OpaqueExpression"/>
        <name>relationalExpressionIsUnlimitedNaturalDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionTypeDerivation" xmi:uuid="725A27D7-D3DC-4F6E-9895-74F89B44DF88" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-RelationalExpression"/>
        <ownedComment xmi:id="Alf-RelationalExpression-relationalExpressionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4329-9CDD-74F8C1456134" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-relationalExpressionTypeDerivation"/>
          <body>The type of a relational expression is Boolean. </body>
        </ownedComment>
        <specification xmi:id="Alf-RelationalExpression-relationalExpressionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-40B8-9B00-74F8BC7CFC52" xmi:type="uml:OpaqueExpression"/>
        <name>relationalExpressionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionLowerDerivation" xmi:uuid="725A27D7-D3DC-44F6-9543-74F87149564A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-RelationalExpression"/>
        <ownedComment xmi:id="Alf-RelationalExpression-relationalExpressionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A14-9029-74F8C4299894" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-relationalExpressionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-RelationalExpression-relationalExpressionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4A87-9349-74F8BA74BF49" xmi:type="uml:OpaqueExpression"/>
        <name>relationalExpressionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionUpperDerivation" xmi:uuid="725A27D7-D3DC-47D5-9BCA-74F8EBDA14AA" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-RelationalExpression"/>
        <ownedComment xmi:id="Alf-RelationalExpression-relationalExpressionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4445-9125-74F83065EFC7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-relationalExpressionUpperDerivation"/>
          <body>A relational expression has a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-RelationalExpression-relationalExpressionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4103-9474-74F8C6ED42BC" xmi:type="uml:OpaqueExpression"/>
        <name>relationalExpressionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-RelationalExpression-relationalExpressionOperandTypes" xmi:uuid="725A27D7-D3DC-4BD8-9D0A-74F88C78D229" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-RelationalExpression"/>
        <ownedComment xmi:id="Alf-RelationalExpression-relationalExpressionOperandTypes-ownedComment" xmi:uuid="725A27D7-D3DC-46BB-9329-74F8AA48CB5C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-relationalExpressionOperandTypes"/>
          <body>The operand expressions for a comparison operator must have type Integer, UnlimitedNatural or Natural. However, it is not allowed to have one operand expression be Integer and the other be UnlimitedNatural. </body>
        </ownedComment>
        <specification xmi:id="Alf-RelationalExpression-relationalExpressionOperandTypes-specification" xmi:uuid="725A27D7-D3DC-4707-9E21-74F8AF0C6BEE" xmi:type="uml:OpaqueExpression"/>
        <name>relationalExpressionOperandTypes</name>
      </ownedRule>
      <generalization xmi:id="Alf-RelationalExpression-generalization" xmi:uuid="725A27D7-D3DC-4B39-9124-74F86132A691" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-BinaryExpression"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-RelationalExpression-isUnlimitedNatural" xmi:uuid="725A27D7-D3DC-4542-99EA-74F8D9AC1998" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-RelationalExpression-isUnlimitedNatural-ownedComment" xmi:uuid="725A27D7-D3DC-489D-907B-74F89BF708B5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-RelationalExpression-isUnlimitedNatural"/>
          <body>Whether this is an UnlimitedNatural comparison. </body>
        </ownedComment>
        <name>isUnlimitedNatural</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>RelationalExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_qualifiedName" xmi:uuid="725A27D7-D3DC-45FD-9A17-74F887E9A1BB" 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="725A27D7-D3DC-4E58-9ABD-74F8562A9C4A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referent_qualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-497F-9A75-74F815DE4B62" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_referent_qualifiedName-qualifiedName-upperValue" xmi:uuid="725A27D7-D3DC-4ED4-9CAF-74F86607188B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_referent_qualifiedName"/>
      </ownedEnd>
      <name>A_referent_qualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_sequenceConstructionExpression" xmi:uuid="725A27D7-D3DC-4A99-9E80-74F8B0CE9467" 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="725A27D7-D3DC-4738-9A93-74F8F534A724" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_sequenceConstructionExpression-sequenceConstructionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4226-92AA-74F8FD5482CE" xmi:type="uml:LiteralInteger"/>
        <name>sequenceConstructionExpression</name>
        <type xmi:idref="Alf-SequenceConstructionExpression"/>
        <association xmi:idref="Alf-A_typeName_sequenceConstructionExpression"/>
      </ownedEnd>
      <name>A_typeName_sequenceConstructionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_parameter_invocationExpression" xmi:uuid="725A27D7-D3DC-4BB0-9310-74F89301568B" 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="725A27D7-D3DC-4358-982D-74F87BEAA1FD" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_parameter_invocationExpression-invocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4B1C-9C76-74F84923D8BC" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_parameter_invocationExpression-invocationExpression-upperValue" xmi:uuid="725A27D7-D3DC-42AD-9D5D-74F886FC685C" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>invocationExpression</name>
        <type xmi:idref="Alf-InvocationExpression"/>
        <association xmi:idref="Alf-A_parameter_invocationExpression"/>
      </ownedEnd>
      <name>A_parameter_invocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_feature_propertyAccessExpression" xmi:uuid="725A27D7-D3DC-4EAC-938F-74F8A7593C10" 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="725A27D7-D3DC-41E1-9C58-74F8AB46AC2B" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_feature_propertyAccessExpression-propertyAccessExpression-lowerValue" xmi:uuid="725A27D7-D3DC-48F7-90DB-74F8290CDD71" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_feature_propertyAccessExpression-propertyAccessExpression-upperValue" xmi:uuid="725A27D7-D3DC-4B0E-93DA-74F85B8885D9" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>propertyAccessExpression</name>
        <type xmi:idref="Alf-PropertyAccessExpression"/>
        <association xmi:idref="Alf-A_feature_propertyAccessExpression"/>
      </ownedEnd>
      <name>A_feature_propertyAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_rangeUpper_sequenceRange" xmi:uuid="725A27D7-D3DC-4CCC-9BDE-74F8E8100D22" 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="725A27D7-D3DC-4361-9B04-74F8CA98BB5D" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_rangeUpper_sequenceRange-sequenceRange-lowerValue" xmi:uuid="725A27D7-D3DC-44A7-94F3-74F8AED05063" xmi:type="uml:LiteralInteger"/>
        <name>sequenceRange</name>
        <type xmi:idref="Alf-SequenceRange"/>
        <association xmi:idref="Alf-A_rangeUpper_sequenceRange"/>
      </ownedEnd>
      <name>A_rangeUpper_sequenceRange</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_className_classExtentExpression" xmi:uuid="725A27D7-D3DC-4DC7-9FD4-74F88BEE038A" 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="725A27D7-D3DC-4DD9-93AE-74F85D5F2DBA" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_className_classExtentExpression-classExtentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-469A-9327-74F82BEE9FDC" xmi:type="uml:LiteralInteger"/>
        <name>classExtentExpression</name>
        <type xmi:idref="Alf-ClassExtentExpression"/>
        <association xmi:idref="Alf-A_className_classExtentExpression"/>
      </ownedEnd>
      <name>A_className_classExtentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_primary_sequenceOperationExpression" xmi:uuid="725A27D7-D3DC-4404-98C6-74F8EE30AB8E" 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="725A27D7-D3DC-4D23-9931-74F8E772311F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_primary_sequenceOperationExpression-sequenceOperationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4487-9F67-74F846893B24" xmi:type="uml:LiteralInteger"/>
        <name>sequenceOperationExpression</name>
        <type xmi:idref="Alf-SequenceOperationExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceOperationExpression"/>
      </ownedEnd>
      <name>A_primary_sequenceOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_featureReference" xmi:uuid="725A27D7-D3DC-4F76-9BC1-74F8E26D1168" 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="725A27D7-D3DC-4018-9BA9-74F86A7482F2" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_featureReference-featureReference-lowerValue" xmi:uuid="725A27D7-D3DC-4E94-9DB8-74F8517984DF" xmi:type="uml:LiteralInteger"/>
        <name>featureReference</name>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_expression_featureReference"/>
      </ownedEnd>
      <name>A_expression_featureReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand1_conditionalTestExpression" xmi:uuid="725A27D7-D3DC-4552-9DED-74F87A3210FF" 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="725A27D7-D3DC-498A-9C54-74F8AD412067" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand1_conditionalTestExpression-conditionalTestExpression-lowerValue" xmi:uuid="725A27D7-D3DC-41A4-9034-74F81BFDEA7A" xmi:type="uml:LiteralInteger"/>
        <name>conditionalTestExpression</name>
        <type xmi:idref="Alf-ConditionalTestExpression"/>
        <association xmi:idref="Alf-A_operand1_conditionalTestExpression"/>
      </ownedEnd>
      <name>A_operand1_conditionalTestExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_featureReference" xmi:uuid="725A27D7-D3DC-42F5-9D97-74F84298950B" 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="725A27D7-D3DC-4256-9FFE-74F8ECC3EE6A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referent_featureReference-featureReference-lowerValue" xmi:uuid="725A27D7-D3DC-411D-9C61-74F8E1204902" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_referent_featureReference-featureReference-upperValue" xmi:uuid="725A27D7-D3DC-4D84-9458-74F8669DBCB3" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>featureReference</name>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_referent_featureReference"/>
      </ownedEnd>
      <name>A_referent_featureReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignment_nameExpression" xmi:uuid="725A27D7-D3DC-4DDF-9DC9-74F8AD491A6C" 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="725A27D7-D3DC-40AE-9A17-74F87E971C28" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignment_nameExpression-nameExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4410-9730-74F856D0E1BD" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignment_nameExpression-nameExpression-upperValue" xmi:uuid="725A27D7-D3DC-4310-9BE1-74F88023ACE0" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>nameExpression</name>
        <type xmi:idref="Alf-NameExpression"/>
        <association xmi:idref="Alf-A_assignment_nameExpression"/>
      </ownedEnd>
      <name>A_assignment_nameExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand2_conditionalTestExpression" xmi:uuid="725A27D7-D3DC-4E9B-9422-74F869EC892F" 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="725A27D7-D3DC-43F5-9A8D-74F81C034B99" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand2_conditionalTestExpression-conditionalTestExpression-lowerValue" xmi:uuid="725A27D7-D3DC-46A0-994A-74F8FFE4DE9B" xmi:type="uml:LiteralInteger"/>
        <name>conditionalTestExpression</name>
        <type xmi:idref="Alf-ConditionalTestExpression"/>
        <association xmi:idref="Alf-A_operand2_conditionalTestExpression"/>
      </ownedEnd>
      <name>A_operand2_conditionalTestExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand_castExpression" xmi:uuid="725A27D7-D3DC-40B5-989E-74F8D0E50066" 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="725A27D7-D3DC-451D-99FB-74F88F773344" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand_castExpression-castExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4A68-985C-74F854AE8C34" xmi:type="uml:LiteralInteger"/>
        <name>castExpression</name>
        <type xmi:idref="Alf-CastExpression"/>
        <association xmi:idref="Alf-A_operand_castExpression"/>
      </ownedEnd>
      <name>A_operand_castExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_incrementOrDecrementExpression" xmi:uuid="725A27D7-D3DC-4A33-9E25-74F816D943F5" 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="725A27D7-D3DC-4B48-99B1-74F8DB2EA303" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4C04-98C0-74F881A4550F" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_expression_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue" xmi:uuid="725A27D7-D3DC-4039-9267-74F81125D2E6" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>incrementOrDecrementExpression</name>
        <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <association xmi:idref="Alf-A_expression_incrementOrDecrementExpression"/>
      </ownedEnd>
      <name>A_expression_incrementOrDecrementExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_feature_assignmentExpression" xmi:uuid="725A27D7-D3DC-4E66-9DCF-74F8D481F47F" 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="725A27D7-D3DC-4FFD-9BFD-74F817C96163" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_feature_assignmentExpression-assignmentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-47BB-9D44-74F8120A2729" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_feature_assignmentExpression-assignmentExpression-upperValue" xmi:uuid="725A27D7-D3DC-4793-9996-74F886CEB026" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentExpression</name>
        <type xmi:idref="Alf-AssignmentExpression"/>
        <association xmi:idref="Alf-A_feature_assignmentExpression"/>
      </ownedEnd>
      <name>A_feature_assignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operation_sequenceOperationExpression" xmi:uuid="725A27D7-D3DC-41DA-9550-74F818031AC8" 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="725A27D7-D3DC-4DB0-99DE-74F8269917B2" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operation_sequenceOperationExpression-sequenceOperationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4D8D-9291-74F8D936189D" xmi:type="uml:LiteralInteger"/>
        <name>sequenceOperationExpression</name>
        <type xmi:idref="Alf-SequenceOperationExpression"/>
        <association xmi:idref="Alf-A_operation_sequenceOperationExpression"/>
      </ownedEnd>
      <name>A_operation_sequenceOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_target_superInvocationExpression" xmi:uuid="725A27D7-D3DC-41B1-90AA-74F80FDA41B6" 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="725A27D7-D3DC-40A7-9A4B-74F84BCAFFEF" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_target_superInvocationExpression-superInvocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-496B-9DD4-74F868F45001" xmi:type="uml:LiteralInteger"/>
        <name>superInvocationExpression</name>
        <type xmi:idref="Alf-SuperInvocationExpression"/>
        <association xmi:idref="Alf-A_target_superInvocationExpression"/>
      </ownedEnd>
      <name>A_target_superInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_argument_sequenceExpansionExpression" xmi:uuid="725A27D7-D3DC-40D7-9CFB-74F841C75763" 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="725A27D7-D3DC-4696-9C8B-74F8E101364F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_argument_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4EB4-9A47-74F85A67141A" xmi:type="uml:LiteralInteger"/>
        <name>sequenceExpansionExpression</name>
        <type xmi:idref="Alf-SequenceExpansionExpression"/>
        <association xmi:idref="Alf-A_argument_sequenceExpansionExpression"/>
      </ownedEnd>
      <name>A_argument_sequenceExpansionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_primary_sequenceReductionExpression" xmi:uuid="725A27D7-D3DC-4EF1-9968-74F87CC0EE76" 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="725A27D7-D3DC-4E3F-9612-74F8BDD5956A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_primary_sequenceReductionExpression-sequenceReductionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4E1A-9BC0-74F8FC14EE1B" xmi:type="uml:LiteralInteger"/>
        <name>sequenceReductionExpression</name>
        <type xmi:idref="Alf-SequenceReductionExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceReductionExpression"/>
      </ownedEnd>
      <name>A_primary_sequenceReductionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_extentOrExpression" xmi:uuid="725A27D7-D3DC-4402-9D3B-74F8DA3D202C" 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="725A27D7-D3DC-4E2B-93E0-74F8A38A8404" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_extentOrExpression-extentOrExpression-lowerValue" xmi:uuid="725A27D7-D3DC-434D-939E-74F82D0278D1" xmi:type="uml:LiteralInteger"/>
        <name>extentOrExpression</name>
        <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="725A27D7-D3DC-42F0-97D2-74F81372F0D0" 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="725A27D7-D3DC-4B4A-988B-74F8742A4EC6" xmi:type="uml:Property">
        <name>classificationExpression</name>
        <type xmi:idref="Alf-ClassificationExpression"/>
        <association xmi:idref="Alf-A_referent_classificationExpression"/>
      </ownedEnd>
      <name>A_referent_classificationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_templateName_qualifiedName" xmi:uuid="725A27D7-D3DC-4242-9974-74F80BE7BE4D" 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="725A27D7-D3DC-4ECE-9EE7-74F864A4BC01" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_templateName_qualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-4E3B-982C-74F871F58048" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_templateName_qualifiedName-qualifiedName-upperValue" xmi:uuid="725A27D7-D3DC-49B0-992D-74F89ECFEF7D" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_templateName_qualifiedName"/>
      </ownedEnd>
      <name>A_templateName_qualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_qualification_qualifiedName" xmi:uuid="725A27D7-D3DC-4B8C-9254-74F811FB7591" 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="725A27D7-D3DC-4163-9B37-74F8DC513BAC" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_qualification_qualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-4994-9D3A-74F83AFEF4E2" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_qualification_qualifiedName-qualifiedName-upperValue" xmi:uuid="725A27D7-D3DC-4ED5-9F03-74F869F469FB" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_qualification_qualifiedName"/>
      </ownedEnd>
      <name>A_qualification_qualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_binaryExpression_operand1" xmi:uuid="725A27D7-D3DC-4FEA-92F8-74F836CD96EB" 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="725A27D7-D3DC-4825-9F93-74F8AD6EEF6C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_binaryExpression_operand1-binaryExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4A7F-938A-74F87E351501" xmi:type="uml:LiteralInteger"/>
        <name>binaryExpression</name>
        <type xmi:idref="Alf-BinaryExpression"/>
        <association xmi:idref="Alf-A_binaryExpression_operand1"/>
      </ownedEnd>
      <name>A_binaryExpression_operand1</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_name_nameExpression" xmi:uuid="725A27D7-D3DC-4D03-968A-74F874160168" 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="725A27D7-D3DC-493F-9D5E-74F8B12D7762" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_name_nameExpression-nameExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4622-98E1-74F8FF45D960" xmi:type="uml:LiteralInteger"/>
        <name>nameExpression</name>
        <type xmi:idref="Alf-NameExpression"/>
        <association xmi:idref="Alf-A_name_nameExpression"/>
      </ownedEnd>
      <name>A_name_nameExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand_incrementOrDecrementExpression" xmi:uuid="725A27D7-D3DC-41BC-9299-74F8ED1C870E" 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="725A27D7-D3DC-492E-99AB-74F8A015D2AB" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4869-9928-74F8CE3CA632" xmi:type="uml:LiteralInteger"/>
        <name>incrementOrDecrementExpression</name>
        <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <association xmi:idref="Alf-A_operand_incrementOrDecrementExpression"/>
      </ownedEnd>
      <name>A_operand_incrementOrDecrementExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_behaviorName_sequenceReductionExpression" xmi:uuid="725A27D7-D3DC-45F3-9E1B-74F8D7FACB93" 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="725A27D7-D3DC-4CE4-95BD-74F817C3E15B" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_behaviorName_sequenceReductionExpression-sequenceReductionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-469A-97EB-74F8D816FEF8" xmi:type="uml:LiteralInteger"/>
        <name>sequenceReductionExpression</name>
        <type xmi:idref="Alf-SequenceReductionExpression"/>
        <association xmi:idref="Alf-A_behaviorName_sequenceReductionExpression"/>
      </ownedEnd>
      <name>A_behaviorName_sequenceReductionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_rightHandSide_assignmentExpression" xmi:uuid="725A27D7-D3DC-4F27-9A9D-74F88B0B0831" 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="725A27D7-D3DC-43C6-97A6-74F852F5FB61" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_rightHandSide_assignmentExpression-assignmentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4D74-95A0-74F85C8AC588" xmi:type="uml:LiteralInteger"/>
        <name>assignmentExpression</name>
        <type xmi:idref="Alf-AssignmentExpression"/>
        <association xmi:idref="Alf-A_rightHandSide_assignmentExpression"/>
      </ownedEnd>
      <name>A_rightHandSide_assignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentBefore_expression" xmi:uuid="725A27D7-D3DC-4BC5-9C62-74F856DC0070" 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="725A27D7-D3DC-4E9D-9DC6-74F87B4F9D24" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentBefore_expression-expression-lowerValue" xmi:uuid="725A27D7-D3DC-4687-945E-74F8D8957C87" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentBefore_expression-expression-upperValue" xmi:uuid="725A27D7-D3DC-4ACB-9D47-74F850D27CA7" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>expression</name>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_assignmentBefore_expression"/>
      </ownedEnd>
      <name>A_assignmentBefore_expression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_substitution_namedTemplateBinding" xmi:uuid="725A27D7-D3DC-43E5-9BF7-74F87A29C00D" 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="725A27D7-D3DC-4B5B-9565-74F8DC2BE570" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_substitution_namedTemplateBinding-namedTemplateBinding-lowerValue" xmi:uuid="725A27D7-D3DC-4A0B-98BF-74F867FE87C5" xmi:type="uml:LiteralInteger"/>
        <name>namedTemplateBinding</name>
        <type xmi:idref="Alf-NamedTemplateBinding"/>
        <association xmi:idref="Alf-A_substitution_namedTemplateBinding"/>
      </ownedEnd>
      <name>A_substitution_namedTemplateBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_input_tuple" xmi:uuid="725A27D7-D3DC-4C7B-9492-74F85DAA94A4" 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="725A27D7-D3DC-4154-93CC-74F8B51C008A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_input_tuple-tuple-lowerValue" xmi:uuid="725A27D7-D3DC-460C-9FB0-74F804BD3BD0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_input_tuple-tuple-upperValue" xmi:uuid="725A27D7-D3DC-4EED-9C17-74F8DAE765FA" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>tuple</name>
        <type xmi:idref="Alf-Tuple"/>
        <association xmi:idref="Alf-A_input_tuple"/>
      </ownedEnd>
      <name>A_input_tuple</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_feature_featureLeftHandSide" xmi:uuid="725A27D7-D3DC-4B4A-96E9-74F8DDF131B1" 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="725A27D7-D3DC-4B56-943C-74F8E592D21B" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_feature_featureLeftHandSide-featureLeftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-42EB-989F-74F8A3AD0DB6" xmi:type="uml:LiteralInteger"/>
        <name>featureLeftHandSide</name>
        <type xmi:idref="Alf-FeatureLeftHandSide"/>
        <association xmi:idref="Alf-A_feature_featureLeftHandSide"/>
      </ownedEnd>
      <name>A_feature_featureLeftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_namedExpression_namedTuple" xmi:uuid="725A27D7-D3DC-49E0-99DF-74F89E3973D4" 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="725A27D7-D3DC-4E10-9067-74F866C0234D" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_namedExpression_namedTuple-namedTuple-lowerValue" xmi:uuid="725A27D7-D3DC-4450-9BBD-74F813D39891" xmi:type="uml:LiteralInteger"/>
        <name>namedTuple</name>
        <type xmi:idref="Alf-NamedTuple"/>
        <association xmi:idref="Alf-A_namedExpression_namedTuple"/>
      </ownedEnd>
      <name>A_namedExpression_namedTuple</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_positionalTuple" xmi:uuid="725A27D7-D3DC-453E-95DF-74F85F03874D" 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="725A27D7-D3DC-415D-9548-74F8DF248850" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_positionalTuple-positionalTuple-lowerValue" xmi:uuid="725A27D7-D3DC-4755-95DB-74F80F3982A1" xmi:type="uml:LiteralInteger"/>
        <name>positionalTuple</name>
        <type xmi:idref="Alf-PositionalTuple"/>
        <association xmi:idref="Alf-A_expression_positionalTuple"/>
      </ownedEnd>
      <name>A_expression_positionalTuple</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_constructor_instanceCreationExpression" xmi:uuid="725A27D7-D3DC-42BA-96EC-74F83CCC82A4" 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="725A27D7-D3DC-437E-96FD-74F88246581C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_constructor_instanceCreationExpression-instanceCreationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-452C-914F-74F87DD794F0" xmi:type="uml:LiteralInteger"/>
        <name>instanceCreationExpression</name>
        <type xmi:idref="Alf-InstanceCreationExpression"/>
        <association xmi:idref="Alf-A_constructor_instanceCreationExpression"/>
      </ownedEnd>
      <name>A_constructor_instanceCreationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignment_assignmentExpression" xmi:uuid="725A27D7-D3DC-4922-9166-74F8F620FD74" 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="725A27D7-D3DC-447E-9372-74F875BB2E3E" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignment_assignmentExpression-assignmentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4F11-9976-74F8DDDC86F8" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignment_assignmentExpression-assignmentExpression-upperValue" xmi:uuid="725A27D7-D3DC-4C27-926A-74F83CE95C1F" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentExpression</name>
        <type xmi:idref="Alf-AssignmentExpression"/>
        <association xmi:idref="Alf-A_assignment_assignmentExpression"/>
      </ownedEnd>
      <name>A_assignment_assignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_binding_nameBinding" xmi:uuid="725A27D7-D3DC-4766-9259-74F8FEAD2F0B" 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="725A27D7-D3DC-4078-9273-74F809129989" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_binding_nameBinding-nameBinding-lowerValue" xmi:uuid="725A27D7-D3DC-43BF-9989-74F8165D903D" xmi:type="uml:LiteralInteger"/>
        <name>nameBinding</name>
        <type xmi:idref="Alf-NameBinding"/>
        <association xmi:idref="Alf-A_binding_nameBinding"/>
      </ownedEnd>
      <name>A_binding_nameBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_associationName_linkOperationExpression" xmi:uuid="725A27D7-D3DC-4437-9C2F-74F8FBD4D4F2" 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="725A27D7-D3DC-4F0E-9546-74F85581E171" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_associationName_linkOperationExpression-linkOperationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4FE2-9DE1-74F8D71A9D41" xmi:type="uml:LiteralInteger"/>
        <name>linkOperationExpression</name>
        <type xmi:idref="Alf-LinkOperationExpression"/>
        <association xmi:idref="Alf-A_associationName_linkOperationExpression"/>
      </ownedEnd>
      <name>A_associationName_linkOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_target_nameLeftHandSide" xmi:uuid="725A27D7-D3DC-4A1E-949F-74F81D5EF766" 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="725A27D7-D3DC-42C4-95A6-74F81D6B5ABE" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_target_nameLeftHandSide-nameLeftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-4E2C-99E2-74F8A96CF588" xmi:type="uml:LiteralInteger"/>
        <name>nameLeftHandSide</name>
        <type xmi:idref="Alf-NameLeftHandSide"/>
        <association xmi:idref="Alf-A_target_nameLeftHandSide"/>
      </ownedEnd>
      <name>A_target_nameLeftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_type_expression" xmi:uuid="725A27D7-D3DC-4AD0-986E-74F8509B1076" 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="725A27D7-D3DC-4B84-95CB-74F8C7549354" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_type_expression-expression-lowerValue" xmi:uuid="725A27D7-D3DC-417D-91B4-74F857625394" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_type_expression-expression-upperValue" xmi:uuid="725A27D7-D3DC-4298-98BF-74F83111752E" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>expression</name>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_type_expression"/>
      </ownedEnd>
      <name>A_type_expression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_index_namedExpression" xmi:uuid="725A27D7-D3DC-4B35-9926-74F893EF4087" 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="725A27D7-D3DC-4BE2-9478-74F804B0BD43" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_index_namedExpression-namedExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4B70-979D-74F8D4B1E50F" xmi:type="uml:LiteralInteger"/>
        <name>namedExpression</name>
        <type xmi:idref="Alf-NamedExpression"/>
        <association xmi:idref="Alf-A_index_namedExpression"/>
      </ownedEnd>
      <name>A_index_namedExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_nameBinding_featureReference" xmi:uuid="725A27D7-D3DC-4791-962E-74F837D85DAE" 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="725A27D7-D3DC-4532-9148-74F895ED97E0" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_nameBinding_featureReference-featureReference-lowerValue" xmi:uuid="725A27D7-D3DC-4114-9500-74F842362916" xmi:type="uml:LiteralInteger"/>
        <name>featureReference</name>
        <type xmi:idref="Alf-FeatureReference"/>
        <association xmi:idref="Alf-A_nameBinding_featureReference"/>
      </ownedEnd>
      <name>A_nameBinding_featureReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_nonNameExpression_extentOrExpression" xmi:uuid="725A27D7-D3DC-4C9C-9F67-74F895979083" 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="725A27D7-D3DC-463F-9D68-74F81875E116" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_nonNameExpression_extentOrExpression-extentOrExpression-lowerValue" xmi:uuid="725A27D7-D3DC-44A6-9EF5-74F8EAF26173" xmi:type="uml:LiteralInteger"/>
        <name>extentOrExpression</name>
        <type xmi:idref="Alf-ExtentOrExpression"/>
        <association xmi:idref="Alf-A_nonNameExpression_extentOrExpression"/>
      </ownedEnd>
      <name>A_nonNameExpression_extentOrExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_propertyAccess_nameExpression" xmi:uuid="725A27D7-D3DC-4B9B-9D15-74F8FFC15DA0" 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="725A27D7-D3DC-4F5C-931A-74F89A4A46E1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_propertyAccess_nameExpression-nameExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4AF1-9866-74F855235E52" xmi:type="uml:LiteralInteger"/>
        <name>nameExpression</name>
        <type xmi:idref="Alf-NameExpression"/>
        <association xmi:idref="Alf-A_propertyAccess_nameExpression"/>
      </ownedEnd>
      <name>A_propertyAccess_nameExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_invocationExpression" xmi:uuid="725A27D7-D3DC-4BBD-9E3B-74F871D55EFE" 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="725A27D7-D3DC-40F5-9537-74F82D672DCE" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referent_invocationExpression-invocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-411B-93C4-74F85D768013" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_referent_invocationExpression-invocationExpression-upperValue" xmi:uuid="725A27D7-D3DC-4317-95C3-74F84D4386FB" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>invocationExpression</name>
        <type xmi:idref="Alf-InvocationExpression"/>
        <association xmi:idref="Alf-A_referent_invocationExpression"/>
      </ownedEnd>
      <name>A_referent_invocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_featureReference_propertyAccessExpression" xmi:uuid="725A27D7-D3DC-4751-9875-74F8CF8C211F" 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="725A27D7-D3DC-4FF3-9843-74F810ACFD07" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_featureReference_propertyAccessExpression-propertyAccessExpression-lowerValue" xmi:uuid="725A27D7-D3DC-40E1-9AFD-74F857C2D5F5" xmi:type="uml:LiteralInteger"/>
        <name>propertyAccessExpression</name>
        <type xmi:idref="Alf-PropertyAccessExpression"/>
        <association xmi:idref="Alf-A_featureReference_propertyAccessExpression"/>
      </ownedEnd>
      <name>A_featureReference_propertyAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_index_sequenceAccessExpression" xmi:uuid="725A27D7-D3DC-4A49-9563-74F8A851D084" 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="725A27D7-D3DC-4E6B-9DDA-74F84FC7D07F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_index_sequenceAccessExpression-sequenceAccessExpression-lowerValue" xmi:uuid="725A27D7-D3DC-45CA-9A28-74F88EFAB646" xmi:type="uml:LiteralInteger"/>
        <name>sequenceAccessExpression</name>
        <type xmi:idref="Alf-SequenceAccessExpression"/>
        <association xmi:idref="Alf-A_index_sequenceAccessExpression"/>
      </ownedEnd>
      <name>A_index_sequenceAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_name_extentOrExpression" xmi:uuid="725A27D7-D3DC-4BB0-9FE7-74F8F421AD0A" 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="725A27D7-D3DC-40C3-9126-74F895F173FB" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_name_extentOrExpression-extentOrExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4E63-96F5-74F8A4B852AF" xmi:type="uml:LiteralInteger"/>
        <name>extentOrExpression</name>
        <type xmi:idref="Alf-ExtentOrExpression"/>
        <association xmi:idref="Alf-A_name_extentOrExpression"/>
      </ownedEnd>
      <name>A_name_extentOrExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand3_conditionalTestExpression" xmi:uuid="725A27D7-D3DC-4FF8-98BC-74F805425CA8" 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="725A27D7-D3DC-40F7-9552-74F8DF2B6B01" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand3_conditionalTestExpression-conditionalTestExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4675-9971-74F884E69F76" xmi:type="uml:LiteralInteger"/>
        <name>conditionalTestExpression</name>
        <type xmi:idref="Alf-ConditionalTestExpression"/>
        <association xmi:idref="Alf-A_operand3_conditionalTestExpression"/>
      </ownedEnd>
      <name>A_operand3_conditionalTestExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentBefore_leftHandSide" xmi:uuid="725A27D7-D3DC-4D3E-9CCF-74F88CBFA686" 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="725A27D7-D3DC-4A3A-9360-74F837F196D8" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentBefore_leftHandSide-leftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-4569-9207-74F8952BA83B" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentBefore_leftHandSide-leftHandSide-upperValue" xmi:uuid="725A27D7-D3DC-4C42-9948-74F826284BF6" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>leftHandSide</name>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_assignmentBefore_leftHandSide"/>
      </ownedEnd>
      <name>A_assignmentBefore_leftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_classificationExpression" xmi:uuid="725A27D7-D3DC-4566-976D-74F836E0ABD8" 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="725A27D7-D3DC-43DD-97E5-74F882096B18" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_classificationExpression-classificationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4321-90A4-74F840481464" xmi:type="uml:LiteralInteger"/>
        <name>classificationExpression</name>
        <type xmi:idref="Alf-ClassificationExpression"/>
        <association xmi:idref="Alf-A_typeName_classificationExpression"/>
      </ownedEnd>
      <name>A_typeName_classificationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_tuple_invocation" xmi:uuid="725A27D7-D3DC-4F03-9192-74F82E9CE550" 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_rangeLower_sequenceRange" xmi:uuid="725A27D7-D3DC-4EC5-9FAE-74F8FB9FCD6A" 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="725A27D7-D3DC-45AD-9184-74F86B3F8C5D" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_rangeLower_sequenceRange-sequenceRange-lowerValue" xmi:uuid="725A27D7-D3DC-4855-97FB-74F8476BCC99" xmi:type="uml:LiteralInteger"/>
        <name>sequenceRange</name>
        <type xmi:idref="Alf-SequenceRange"/>
        <association xmi:idref="Alf-A_rangeLower_sequenceRange"/>
      </ownedEnd>
      <name>A_rangeLower_sequenceRange</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_leftHandSide_sequenceOperationExpression" xmi:uuid="725A27D7-D3DC-4428-9A89-74F843345873" 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="725A27D7-D3DC-421C-9753-74F863A01874" xmi:type="uml:Property">
        <name>sequenceOperationExpression</name>
        <type xmi:idref="Alf-SequenceOperationExpression"/>
        <association xmi:idref="Alf-A_leftHandSide_sequenceOperationExpression"/>
      </ownedEnd>
      <name>A_leftHandSide_sequenceOperationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_argumentName_positionalTemplateBinding" xmi:uuid="725A27D7-D3DC-48F5-9200-74F842332B94" 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="725A27D7-D3DC-4FD3-9F84-74F8947A390F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_argumentName_positionalTemplateBinding-positionalTemplateBinding-lowerValue" xmi:uuid="725A27D7-D3DC-4CD0-9135-74F8278DDA5E" xmi:type="uml:LiteralInteger"/>
        <name>positionalTemplateBinding</name>
        <type xmi:idref="Alf-PositionalTemplateBinding"/>
        <association xmi:idref="Alf-A_argumentName_positionalTemplateBinding"/>
      </ownedEnd>
      <name>A_argumentName_positionalTemplateBinding</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentAfter_leftHandSide" xmi:uuid="725A27D7-D3DC-4A9F-940D-74F875C71D72" 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="725A27D7-D3DC-4812-9807-74F86D44B98B" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentAfter_leftHandSide-leftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-4C9F-96B3-74F8436550DA" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentAfter_leftHandSide-leftHandSide-upperValue" xmi:uuid="725A27D7-D3DC-4FE3-9DAA-74F8D76FB077" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>leftHandSide</name>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_assignmentAfter_leftHandSide"/>
      </ownedEnd>
      <name>A_assignmentAfter_leftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_argumentName_templateParameterSubstitution" xmi:uuid="725A27D7-D3DC-4BD6-9C08-74F855923E64" 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="725A27D7-D3DC-43C1-971A-74F888E31A4F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_argumentName_templateParameterSubstitution-templateParameterSubstitution-lowerValue" xmi:uuid="725A27D7-D3DC-4D0D-9649-74F88537E998" xmi:type="uml:LiteralInteger"/>
        <name>templateParameterSubstitution</name>
        <type xmi:idref="Alf-TemplateParameterSubstitution"/>
        <association xmi:idref="Alf-A_argumentName_templateParameterSubstitution"/>
      </ownedEnd>
      <name>A_argumentName_templateParameterSubstitution</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_qualifiedName_unqualifiedName" xmi:uuid="725A27D7-D3DC-4262-9A3A-74F88B89649C" 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="725A27D7-D3DC-4285-98EC-74F816AE7A6C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_qualifiedName_unqualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-49BB-972A-74F84D6FA32B" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_qualifiedName_unqualifiedName-qualifiedName-upperValue" xmi:uuid="725A27D7-D3DC-46E3-908A-74F86BCCA5C1" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_qualifiedName_unqualifiedName"/>
      </ownedEnd>
      <name>A_qualifiedName_unqualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_feature_invocationExpression" xmi:uuid="725A27D7-D3DC-49AA-94B9-74F8885DDC93" 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="725A27D7-D3DC-4DED-9C30-74F8ADDBE397" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_feature_invocationExpression-invocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4C04-9C42-74F8F649B694" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_feature_invocationExpression-invocationExpression-upperValue" xmi:uuid="725A27D7-D3DC-41CB-9276-74F8052591C2" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>invocationExpression</name>
        <type xmi:idref="Alf-InvocationExpression"/>
        <association xmi:idref="Alf-A_feature_invocationExpression"/>
      </ownedEnd>
      <name>A_feature_invocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_assignmentExpression" xmi:uuid="725A27D7-D3DC-4507-9C1E-74F8284B4D98" 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="725A27D7-D3DC-4CDD-9835-74F89C2E6754" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_assignmentExpression-assignmentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4370-9A9B-74F8A60549F7" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_expression_assignmentExpression-assignmentExpression-upperValue" xmi:uuid="725A27D7-D3DC-4444-94CE-74F86279F31E" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentExpression</name>
        <type xmi:idref="Alf-AssignmentExpression"/>
        <association xmi:idref="Alf-A_expression_assignmentExpression"/>
      </ownedEnd>
      <name>A_expression_assignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_output_tuple" xmi:uuid="725A27D7-D3DC-4567-998C-74F880CD8814" 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="725A27D7-D3DC-4597-9C18-74F89B395F43" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_output_tuple-tuple-lowerValue" xmi:uuid="725A27D7-D3DC-4E00-9468-74F874AED5CB" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_output_tuple-tuple-upperValue" xmi:uuid="725A27D7-D3DC-4D3B-9014-74F83CEDDA9C" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>tuple</name>
        <type xmi:idref="Alf-Tuple"/>
        <association xmi:idref="Alf-A_output_tuple"/>
      </ownedEnd>
      <name>A_output_tuple</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_binaryExpression_operand2" xmi:uuid="725A27D7-D3DC-4D2E-9B94-74F8698904D0" 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="725A27D7-D3DC-4C29-9D1B-74F8226BFA20" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_binaryExpression_operand2-binaryExpression-lowerValue" xmi:uuid="725A27D7-D3DC-43B0-9034-74F80E32B1C9" xmi:type="uml:LiteralInteger"/>
        <name>binaryExpression</name>
        <type xmi:idref="Alf-BinaryExpression"/>
        <association xmi:idref="Alf-A_binaryExpression_operand2"/>
      </ownedEnd>
      <name>A_binaryExpression_operand2</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_target_featureInvocationExpression" xmi:uuid="725A27D7-D3DC-4282-97BD-74F81C122A44" 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="725A27D7-D3DC-43A5-96B1-74F85E08BFB1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_target_featureInvocationExpression-featureInvocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4294-92D3-74F88968794E" xmi:type="uml:LiteralInteger"/>
        <name>featureInvocationExpression</name>
        <type xmi:idref="Alf-FeatureInvocationExpression"/>
        <association xmi:idref="Alf-A_target_featureInvocationExpression"/>
      </ownedEnd>
      <name>A_target_featureInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_target_behaviorInvocationExpression" xmi:uuid="725A27D7-D3DC-4B60-9E72-74F8B1F9B460" 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="725A27D7-D3DC-42C3-941E-74F8462D5E4B" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_target_behaviorInvocationExpression-behaviorInvocationExpression-lowerValue" xmi:uuid="725A27D7-D3DC-489F-9FFA-74F83FB7E752" xmi:type="uml:LiteralInteger"/>
        <name>behaviorInvocationExpression</name>
        <type xmi:idref="Alf-BehaviorInvocationExpression"/>
        <association xmi:idref="Alf-A_target_behaviorInvocationExpression"/>
      </ownedEnd>
      <name>A_target_behaviorInvocationExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_sequenceReductionExpression" xmi:uuid="725A27D7-D3DC-4F17-9E65-74F8A939BD33" 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="725A27D7-D3DC-4A54-9FAC-74F82B04EEAE" xmi:type="uml:Property">
        <name>sequenceReductionExpression</name>
        <type xmi:idref="Alf-SequenceReductionExpression"/>
        <association xmi:idref="Alf-A_referent_sequenceReductionExpression"/>
      </ownedEnd>
      <name>A_referent_sequenceReductionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_operand_unaryExpression" xmi:uuid="725A27D7-D3DC-46F9-9EE8-74F84076DFCA" 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="725A27D7-D3DC-4E91-9778-74F86D2912D7" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_operand_unaryExpression-unaryExpression-lowerValue" xmi:uuid="725A27D7-D3DC-452F-982C-74F8EB750433" xmi:type="uml:LiteralInteger"/>
        <name>unaryExpression</name>
        <type xmi:idref="Alf-UnaryExpression"/>
        <association xmi:idref="Alf-A_operand_unaryExpression"/>
      </ownedEnd>
      <name>A_operand_unaryExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_index_leftHandSide" xmi:uuid="725A27D7-D3DC-40D6-9ADF-74F8F747CC34" 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="725A27D7-D3DC-4B2F-99CB-74F8956E3A8A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_index_leftHandSide-leftHandSide-lowerValue" xmi:uuid="725A27D7-D3DC-45AF-9713-74F8CC8ADEB8" xmi:type="uml:LiteralInteger"/>
        <name>leftHandSide</name>
        <type xmi:idref="Alf-LeftHandSide"/>
        <association xmi:idref="Alf-A_index_leftHandSide"/>
      </ownedEnd>
      <name>A_index_leftHandSide</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_castExpression" xmi:uuid="725A27D7-D3DC-4A2F-9194-74F8BE9A4544" 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="725A27D7-D3DC-4F10-914E-74F8AF566802" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_castExpression-castExpression-lowerValue" xmi:uuid="725A27D7-D3DC-47D1-94CB-74F852989F48" xmi:type="uml:LiteralInteger"/>
        <name>castExpression</name>
        <type xmi:idref="Alf-CastExpression"/>
        <association xmi:idref="Alf-A_typeName_castExpression"/>
      </ownedEnd>
      <name>A_typeName_castExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_primary_sequenceExpansionExpression" xmi:uuid="725A27D7-D3DC-4C8C-97DD-74F8DB748F4D" 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="725A27D7-D3DC-475B-9F32-74F8A3A775A9" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_primary_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4D22-9884-74F8402A5896" xmi:type="uml:LiteralInteger"/>
        <name>sequenceExpansionExpression</name>
        <type xmi:idref="Alf-SequenceExpansionExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceExpansionExpression"/>
      </ownedEnd>
      <name>A_primary_sequenceExpansionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_leftHandSide_outputNamedExpression" xmi:uuid="725A27D7-D3DC-413F-90A4-74F8623F9EBC" 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="725A27D7-D3DC-469A-941B-74F8F15696B9" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_leftHandSide_outputNamedExpression-outputNamedExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4C1B-9F5F-74F86E48A406" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_leftHandSide_outputNamedExpression-outputNamedExpression-upperValue" xmi:uuid="725A27D7-D3DC-497A-91CE-74F8F4696F89" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>outputNamedExpression</name>
        <type xmi:idref="Alf-OutputNamedExpression"/>
        <association xmi:idref="Alf-A_leftHandSide_outputNamedExpression"/>
      </ownedEnd>
      <name>A_leftHandSide_outputNamedExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentAfter_expression" xmi:uuid="725A27D7-D3DC-4AAD-975E-74F806457803" 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="725A27D7-D3DC-4C01-9A05-74F81C55EB0C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentAfter_expression-expression-lowerValue" xmi:uuid="725A27D7-D3DC-4189-9A24-74F8AA07DDAD" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentAfter_expression-expression-upperValue" xmi:uuid="725A27D7-D3DC-454D-9DB5-74F8AC65BDB1" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>expression</name>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_assignmentAfter_expression"/>
      </ownedEnd>
      <name>A_assignmentAfter_expression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_leftHandSide_assignmentExpression" xmi:uuid="725A27D7-D3DC-42D0-931F-74F85DE91ACA" 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="725A27D7-D3DC-473B-9C80-74F8777B6F78" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_leftHandSide_assignmentExpression-assignmentExpression-lowerValue" xmi:uuid="725A27D7-D3DC-46F3-95C9-74F84272A3E0" xmi:type="uml:LiteralInteger"/>
        <name>assignmentExpression</name>
        <type xmi:idref="Alf-AssignmentExpression"/>
        <association xmi:idref="Alf-A_leftHandSide_assignmentExpression"/>
      </ownedEnd>
      <name>A_leftHandSide_assignmentExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_enumerationLiteral_nameExpression" xmi:uuid="725A27D7-D3DC-48FE-9316-74F89A48E0BB" 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="725A27D7-D3DC-4D4D-9A16-74F8431A5DD1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_enumerationLiteral_nameExpression-nameExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4B86-9980-74F8CEE0E374" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_enumerationLiteral_nameExpression-nameExpression-upperValue" xmi:uuid="725A27D7-D3DC-42B9-91D2-74F894BE0B56" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>nameExpression</name>
        <type xmi:idref="Alf-NameExpression"/>
        <association xmi:idref="Alf-A_enumerationLiteral_nameExpression"/>
      </ownedEnd>
      <name>A_enumerationLiteral_nameExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_nameBinding_qualifiedName" xmi:uuid="725A27D7-D3DC-4B7D-9E15-74F850A6A654" 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="725A27D7-D3DC-43A6-9897-74F8754DBACC" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_nameBinding_qualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-4794-91F2-74F8ADCD94AB" xmi:type="uml:LiteralInteger"/>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_nameBinding_qualifiedName"/>
      </ownedEnd>
      <name>A_nameBinding_qualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignment_incrementOrDecrementExpression" xmi:uuid="725A27D7-D3DC-4097-92D4-74F85444D58D" 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="725A27D7-D3DC-4D49-99FE-74F8FF804CDD" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue" xmi:uuid="725A27D7-D3DC-463F-9F13-74F88C080934" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignment_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue" xmi:uuid="725A27D7-D3DC-4F01-9948-74F89CF4C6C5" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>incrementOrDecrementExpression</name>
        <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <association xmi:idref="Alf-A_assignment_incrementOrDecrementExpression"/>
      </ownedEnd>
      <name>A_assignment_incrementOrDecrementExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_namedExpression" xmi:uuid="725A27D7-D3DC-4BAD-9828-74F82783D414" 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="725A27D7-D3DC-494E-9AE4-74F885C36662" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_namedExpression-namedExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4765-9DB6-74F82CBAB05F" xmi:type="uml:LiteralInteger"/>
        <name>namedExpression</name>
        <type xmi:idref="Alf-NamedExpression"/>
        <association xmi:idref="Alf-A_expression_namedExpression"/>
      </ownedEnd>
      <name>A_expression_namedExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_disambiguation_qualifiedName" xmi:uuid="725A27D7-D3DC-4C67-95BC-74F8A890C057" 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="725A27D7-D3DC-49E6-9E76-74F8EF9E8881" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_disambiguation_qualifiedName-qualifiedName-lowerValue" xmi:uuid="725A27D7-D3DC-483A-9C9A-74F80319BD81" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_disambiguation_qualifiedName-qualifiedName-upperValue" xmi:uuid="725A27D7-D3DC-498E-9D5F-74F8456F7765" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>qualifiedName</name>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_disambiguation_qualifiedName"/>
      </ownedEnd>
      <name>A_disambiguation_qualifiedName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_element_SequenceExpansionList" xmi:uuid="725A27D7-D3DC-467B-91F6-74F823002FFE" 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="725A27D7-D3DC-4B14-9959-74F8C9A26E59" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_element_SequenceExpansionList-sequenceExpansionList-lowerValue" xmi:uuid="725A27D7-D3DC-4126-9ED7-74F8B90A7CBC" xmi:type="uml:LiteralInteger"/>
        <name>sequenceExpansionList</name>
        <type xmi:idref="Alf-SequenceExpressionList"/>
        <association xmi:idref="Alf-A_element_SequenceExpansionList"/>
      </ownedEnd>
      <name>A_element_SequenceExpansionList</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_feature_incrementOrDecrementExpression" xmi:uuid="725A27D7-D3DC-484C-9A49-74F82F524238" 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="725A27D7-D3DC-419B-965D-74F807F418A1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4E04-98C5-74F89CEFEFC3" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_feature_incrementOrDecrementExpression-incrementOrDecrementExpression-upperValue" xmi:uuid="725A27D7-D3DC-4B1C-90CF-74F8B2AE633C" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>incrementOrDecrementExpression</name>
        <type xmi:idref="Alf-IncrementOrDecrementExpression"/>
        <association xmi:idref="Alf-A_feature_incrementOrDecrementExpression"/>
      </ownedEnd>
      <name>A_feature_incrementOrDecrementExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_variableSource_sequenceExpansionExpression" xmi:uuid="725A27D7-D3DC-4B62-9C07-74F8A592CC0C" 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="725A27D7-D3DC-4A79-9752-74F88C131604" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-48D6-962B-74F8828E9757" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_variableSource_sequenceExpansionExpression-sequenceExpansionExpression-upperValue" xmi:uuid="725A27D7-D3DC-4089-9417-74F826C2BC7C" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>sequenceExpansionExpression</name>
        <type xmi:idref="Alf-SequenceExpansionExpression"/>
        <association xmi:idref="Alf-A_variableSource_sequenceExpansionExpression"/>
      </ownedEnd>
      <name>A_variableSource_sequenceExpansionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_elements_sequenceConstructionExpression" xmi:uuid="725A27D7-D3DC-4D81-9EE9-74F8FCF037B8" 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="725A27D7-D3DC-4A4F-992E-74F837F2E8C1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_elements_sequenceConstructionExpression-sequenceConstructionExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4B9A-9F0E-74F81F8D0C6F" xmi:type="uml:LiteralInteger"/>
        <name>sequenceConstructionExpression</name>
        <type xmi:idref="Alf-SequenceConstructionExpression"/>
        <association xmi:idref="Alf-A_elements_sequenceConstructionExpression"/>
      </ownedEnd>
      <name>A_elements_sequenceConstructionExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_primary_sequenceAccessExpression" xmi:uuid="725A27D7-D3DC-415C-9421-74F8628DC22F" 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="725A27D7-D3DC-4E1E-9CFA-74F8FB1C1F60" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_primary_sequenceAccessExpression-sequenceAccessExpression-lowerValue" xmi:uuid="725A27D7-D3DC-4507-9F45-74F820E5D7CC" xmi:type="uml:LiteralInteger"/>
        <name>sequenceAccessExpression</name>
        <type xmi:idref="Alf-SequenceAccessExpression"/>
        <association xmi:idref="Alf-A_primary_sequenceAccessExpression"/>
      </ownedEnd>
      <name>A_primary_sequenceAccessExpression</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LocalNameDeclarationStatement" xmi:uuid="725A27D7-D3DC-44B5-9A39-74F84B28E0AC" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4CF0-956F-74F81E4F3461" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <body>A statement that declares the type of a local name and assigns it an initial value. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4574-924C-74F82AEDA22B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4FCE-9456-74F8423A8A25" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore"/>
          <body>The assignments before the expression of a local name declaration statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-44A5-948B-74F86E4AEC5B" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType" xmi:uuid="725A27D7-D3DC-4368-9ACC-74F889EA6AE0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType-ownedComment" xmi:uuid="725A27D7-D3DC-48DA-90AC-74F8DCE13109" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementType-specification" xmi:uuid="725A27D7-D3DC-47F8-9343-74F89673045D" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementType</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName" xmi:uuid="725A27D7-D3DC-4A4B-9F43-74F8F0FF18FE" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName-ownedComment" xmi:uuid="725A27D7-D3DC-4122-9654-74F8076453B3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementLocalName-specification" xmi:uuid="725A27D7-D3DC-4714-964A-74F8DBD5C789" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementLocalName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4BE6-92D1-74F8F91465D6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-492D-9099-74F8464E473D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter"/>
          <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. If the statement has multiplicity, then the multiplicity of the local name is [0..*], otherwise it is [0..1]. 
</body>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-480D-99B0-74F84BA12484" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity" xmi:uuid="725A27D7-D3DC-4898-9D2A-74F8BCACF691" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-4D1D-9A22-74F8A653E960" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementExpressionMultiplicity-specification" xmi:uuid="725A27D7-D3DC-4DD7-9FE4-74F86682C03C" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementExpressionMultiplicity</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation" xmi:uuid="725A27D7-D3DC-4064-9325-74F8EAD4BDB8" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A74-926D-74F898B162DB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LocalNameDeclarationStatement-localNameDeclarationStatementTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4A52-93F4-74F87E223944" xmi:type="uml:OpaqueExpression"/>
        <name>localNameDeclarationStatementTypeDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-LocalNameDeclarationStatement-generalization" xmi:uuid="725A27D7-D3DC-4E61-96F7-74F82CC48062" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-name" xmi:uuid="725A27D7-D3DC-4C06-9D86-74F8AC4FDD1C" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-name-ownedComment" xmi:uuid="725A27D7-D3DC-4C60-9057-74F87E44A6B8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-name"/>
          <body>The local name being declared. </body>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-expression" xmi:uuid="725A27D7-D3DC-48E6-9E2E-74F83E0CD0BE" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4024-9232-74F801B45D23" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-expression"/>
          <body>The expression to be evaluated to provide the initial value to be assigned to the local name. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_localNameDeclarationStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity" xmi:uuid="725A27D7-D3DC-4CF2-9334-74F8C7FBCEFA" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity-ownedComment" xmi:uuid="725A27D7-D3DC-4D09-95C8-74F8B8FE35B6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-hasMultiplicity"/>
          <body>Whether the local name is to have a multiplicity upper bound of * rather than 1. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-LocalNameDeclarationStatement-hasMultiplicity-defaultValue" xmi:uuid="725A27D7-D3DC-469A-9831-74F8D0D2E98C" xmi:type="uml:LiteralBoolean"/>
        <name>hasMultiplicity</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-typeName" xmi:uuid="725A27D7-D3DC-4647-97F1-74F8536AF308" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-4757-9E2E-74F856F3600A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-typeName"/>
          <body>The declared type of the local name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LocalNameDeclarationStatement-typeName-lowerValue" xmi:uuid="725A27D7-D3DC-498B-9EFF-74F81B0DF017" xmi:type="uml:LiteralInteger"/>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_localNameDeclarationStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LocalNameDeclarationStatement-type" xmi:uuid="725A27D7-D3DC-4DB1-902B-74F8BB564F76" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LocalNameDeclarationStatement-type-ownedComment" xmi:uuid="725A27D7-D3DC-4071-9B4C-74F8204A8A90" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LocalNameDeclarationStatement-type"/>
          <body>The type declared for the given local name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LocalNameDeclarationStatement-type-lowerValue" xmi:uuid="725A27D7-D3DC-458F-9EFA-74F8B103CD3E" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_type_localNameDeclarationStatement"/>
      </ownedAttribute>
      <name>LocalNameDeclarationStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-QualifiedNameList" xmi:uuid="725A27D7-D3DC-467C-9439-74F843ED34DF" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-QualifiedNameList-ownedComment" xmi:uuid="725A27D7-D3DC-41D9-9BB3-74F8B489D9E4" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-QualifiedNameList"/>
        <body>A group of qualified names. </body>
      </ownedComment>
      <generalization xmi:id="Alf-QualifiedNameList-generalization" xmi:uuid="725A27D7-D3DC-405D-9441-74F8F94BEBDF" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-QualifiedNameList-name" xmi:uuid="725A27D7-D3DC-44F9-9A2E-74F8729172A3" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-QualifiedNameList-name-ownedComment" xmi:uuid="725A27D7-D3DC-4A0F-9D2D-74F80D5ED8C5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-QualifiedNameList-name"/>
          <body>The names in the group. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-QualifiedNameList-name-upperValue" xmi:uuid="725A27D7-D3DC-416B-96E9-74F81CC8AC46" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>name</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_name_qualifiedNameList"/>
      </ownedAttribute>
      <name>QualifiedNameList</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Annotation" xmi:uuid="725A27D7-D3DC-4CA8-94C8-74F8EC146A0C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Annotation-ownedComment" xmi:uuid="725A27D7-D3DC-4167-95F8-74F8AC223850" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Annotation"/>
        <body>An identified modification to the behavior of an annotated statement. </body>
      </ownedComment>
      <generalization xmi:id="Alf-Annotation-generalization" xmi:uuid="725A27D7-D3DC-4818-9C09-74F8E12D1329" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Annotation-identifier" xmi:uuid="725A27D7-D3DC-48C5-9FA6-74F8C1E1290E" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-Annotation-identifier-ownedComment" xmi:uuid="725A27D7-D3DC-4AB6-979B-74F8DCEF7198" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Annotation-identifier"/>
          <body>The name of the annotation. </body>
        </ownedComment>
        <name>identifier</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Annotation-argument" xmi:uuid="725A27D7-D3DC-4057-99BF-74F8DEA657F6" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-Annotation-argument-ownedComment" xmi:uuid="725A27D7-D3DC-44D0-960B-74F869022061" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Annotation-argument"/>
          <body>If permitted by the annotation, an optional list of local names relevant to the annotation. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Annotation-argument-lowerValue" xmi:uuid="725A27D7-D3DC-4DE5-9D6B-74F8358D3C51" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Annotation-argument-upperValue" xmi:uuid="725A27D7-D3DC-4B19-9817-74F813DE9478" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>argument</name>
      </ownedAttribute>
      <name>Annotation</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Statement" xmi:uuid="725A27D7-D3DC-4C12-9614-74F8AC660EF9" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Statement-ownedComment" xmi:uuid="725A27D7-D3DC-409A-9257-74F84D4EBA87" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Statement"/>
        <body>A model of an Alf statement. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-Statement-statementAnnotationsAllowed" xmi:uuid="725A27D7-D3DC-495B-9F5A-74F8103EC1FF" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Statement-statementAnnotationsAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4D8F-9862-74F83F1A84CE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-statementAnnotationsAllowed"/>
          <body>All the annotations of a statement must be allowed, as given by the annotationAllowed operation for the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-Statement-statementAnnotationsAllowed-specification" xmi:uuid="725A27D7-D3DC-47B4-9B12-74F8E9D04FE1" xmi:type="uml:OpaqueExpression"/>
        <name>statementAnnotationsAllowed</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Statement-statementUniqueAssignments" xmi:uuid="725A27D7-D3DC-4394-9F10-74F87DA0C20C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-Expression"/>
        <ownedComment xmi:id="Alf-Statement-statementUniqueAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4641-91BD-74F84508FCA5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-statementUniqueAssignments"/>
          <body>No name may be assigned more than once before or after a statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-Statement-statementUniqueAssignments-specification" xmi:uuid="725A27D7-D3DC-458F-99BC-74F831562903" xmi:type="uml:OpaqueExpression"/>
        <name>statementUniqueAssignments</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Statement-statementIsIsolatedDerivation" xmi:uuid="725A27D7-D3DC-4B8A-9B13-74F8D0F8B52A" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Statement-statementIsIsolatedDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4EDA-9368-74F898FAC173" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-statementIsIsolatedDerivation"/>
          <body>A statement is isolated if it has an @isolated annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-Statement-statementIsIsolatedDerivation-specification" xmi:uuid="725A27D7-D3DC-47C9-90F1-74F8CFAB699F" xmi:type="uml:OpaqueExpression"/>
        <name>statementIsIsolatedDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-Statement-generalization" xmi:uuid="725A27D7-D3DC-4EAB-9642-74F8C9DF43AC" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-DocumentedElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Statement-annotation" xmi:uuid="725A27D7-D3DC-4089-9364-74F8FBF5EDA8" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Statement-annotation-ownedComment" xmi:uuid="725A27D7-D3DC-4EC0-97C6-74F85F2311A0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-annotation"/>
          <body>The annotations applied to this statement. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Statement-annotation-lowerValue" xmi:uuid="725A27D7-D3DC-4480-9BB0-74F81CC35131" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Statement-annotation-upperValue" xmi:uuid="725A27D7-D3DC-49FB-9FAE-74F840920725" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>annotation</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Annotation"/>
        <association xmi:idref="Alf-A_annotation_statement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Statement-assignmentBefore" xmi:uuid="725A27D7-D3DC-42F8-96B4-74F8BB28070F" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Statement-assignmentBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4812-94C1-74F885AD1B9B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-assignmentBefore"/>
          <body>The assigned sources for local names available lexically before this statement. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Statement-assignmentBefore-lowerValue" xmi:uuid="725A27D7-D3DC-4C5F-97A1-74F8F62B6DD0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Statement-assignmentBefore-upperValue" xmi:uuid="725A27D7-D3DC-4DA7-9723-74F881C2763D" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentBefore</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentBefore_statement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Statement-assignmentAfter" xmi:uuid="725A27D7-D3DC-42C1-926B-74F808C623B9" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Statement-assignmentAfter-ownedComment" xmi:uuid="725A27D7-D3DC-42FC-93D3-74F8BD662E0D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-assignmentAfter"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Statement-assignmentAfter-lowerValue" xmi:uuid="725A27D7-D3DC-436B-9C5A-74F8A6F13B7A" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Statement-assignmentAfter-upperValue" xmi:uuid="725A27D7-D3DC-49EA-9CD5-74F89F364D52" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentAfter</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentAfter_statement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Statement-enclosingStatement" xmi:uuid="725A27D7-D3DC-4C56-9ADD-74F8F0AB13E9" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Statement-enclosingStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4716-9B8F-74F8202CF627" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-enclosingStatement"/>
          <body>The statement immediately enclosing this statement, if any. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Statement-enclosingStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4A2B-946A-74F8E7C2BAC2" xmi:type="uml:LiteralInteger"/>
        <name>enclosingStatement</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-Statement"/>
        <association xmi:idref="Alf-A_enclosingStatement_statement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Statement-isIsolated" xmi:uuid="725A27D7-D3DC-48EA-9451-74F83552CF1B" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-Statement-isIsolated-ownedComment" xmi:uuid="725A27D7-D3DC-4220-971C-74F8D69B799A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-isIsolated"/>
          <body>Whether this statement should be executed in isolation. </body>
        </ownedComment>
        <name>isIsolated</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-Statement-annotationAllowed" xmi:uuid="725A27D7-D3DC-47A5-9A8B-74F83313630A" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Statement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-420B-938E-74F8EE126BD9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Statement-annotationAllowed"/>
          <body>Returns true if the given annotation is allowed for this kind of statement. By default, only an @isolated annotation is 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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Statement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-46F1-9263-74F81FBF11CC" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-Statement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-45A8-904B-74F8A0C2000D" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>Statement</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-NonFinalClause" xmi:uuid="725A27D7-D3DC-4C32-98CC-74F87235448D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NonFinalClause-ownedComment" xmi:uuid="725A27D7-D3DC-4DDE-9930-74F859833B7A" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NonFinalClause"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody" xmi:uuid="725A27D7-D3DC-4D3C-9E59-74F8D1870E65" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NonFinalClause"/>
        <ownedComment xmi:id="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody-ownedComment" xmi:uuid="725A27D7-D3DC-4977-9777-74F80D3F53C8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody"/>
          <body>The assignments before the body of a non-final clause are the assignments after the condition. </body>
        </ownedComment>
        <specification xmi:id="Alf-NonFinalClause-nonFinalClauseAssignmentsBeforeBody-specification" xmi:uuid="725A27D7-D3DC-45CB-9FDA-74F893A75085" xmi:type="uml:OpaqueExpression"/>
        <name>nonFinalClauseAssignmentsBeforeBody</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseConditionLocalNames" xmi:uuid="725A27D7-D3DC-4CCA-9C54-74F88FD907C3" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-NonFinalClause"/>
        <ownedComment xmi:id="Alf-NonFinalClause-nonFinalClauseConditionLocalNames-ownedComment" xmi:uuid="725A27D7-D3DC-4F94-9803-74F8E233F24A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-nonFinalClauseConditionLocalNames"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NonFinalClause-nonFinalClauseConditionLocalNames-specification" xmi:uuid="725A27D7-D3DC-4BA9-975A-74F891B1818D" xmi:type="uml:OpaqueExpression"/>
        <name>nonFinalClauseConditionLocalNames</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NonFinalClause-nonFinalClauseConditionType" xmi:uuid="725A27D7-D3DC-40E8-9590-74F81B064093" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-NonFinalClause-nonFinalClauseConditionType-ownedComment" xmi:uuid="725A27D7-D3DC-4CEE-9F5F-74F8B7098056" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-nonFinalClauseConditionType"/>
          <body>The condition of a non-final clause must have type Boolean and a multiplicity upper bound no greater than 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-NonFinalClause-nonFinalClauseConditionType-specification" xmi:uuid="725A27D7-D3DC-4028-912E-74F84A651058" xmi:type="uml:OpaqueExpression"/>
        <name>nonFinalClauseConditionType</name>
      </ownedRule>
      <generalization xmi:id="Alf-NonFinalClause-generalization" xmi:uuid="725A27D7-D3DC-484F-92FE-74F8DB0191F9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NonFinalClause-condition" xmi:uuid="725A27D7-D3DC-4A8B-9086-74F8CA4C3BF6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NonFinalClause-condition-ownedComment" xmi:uuid="725A27D7-D3DC-4FC3-9473-74F80431B9B6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-condition"/>
          <body>The expression that is evaluated to determine whether the clause body may be executed. </body>
        </ownedComment>
        <name>condition</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_condition_nonFinalClause"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NonFinalClause-body" xmi:uuid="725A27D7-D3DC-476E-9514-74F8CCCF361E" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NonFinalClause-body-ownedComment" xmi:uuid="725A27D7-D3DC-4BF5-96E9-74F84DF15E81" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-body"/>
          <body>The sequence of statements that may be executed if the condition evaluates to true. </body>
        </ownedComment>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_nonFinalClause"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-NonFinalClause-assignmentsBefore" xmi:uuid="725A27D7-D3DC-47A5-90F7-74F83B620FC6" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-NonFinalClause-assignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-48C1-927E-74F815CCEA67" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-assignmentsBefore"/>
          <body>The assignments before a non-final clause are the assignments before the condition of the clause. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-NonFinalClause-assignmentsBefore-ownedParameter" xmi:uuid="725A27D7-D3DC-4EAA-9879-74F805FA6C17" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-NonFinalClause-assignmentsBefore-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4B98-9584-74F82B2B4F73" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-NonFinalClause-assignmentsBefore-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-43CE-90BD-74F81C273351" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>assignmentsBefore</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-NonFinalClause-assignmentsAfter" xmi:uuid="725A27D7-D3DC-4B4D-9F1F-74F8AA4C2D35" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-NonFinalClause-assignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4180-9A64-74F8D0F3E822" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NonFinalClause-assignmentsAfter"/>
          <body>The assignments after a non-final clause are the assignments after the block of the clause. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-NonFinalClause-assignmentsAfter-ownedParameter" xmi:uuid="725A27D7-D3DC-4DED-981A-74F83F198FDA" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-NonFinalClause-assignmentsAfter-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4B0B-9918-74F8A1958E96" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-NonFinalClause-assignmentsAfter-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-443A-9B45-74F80009F456" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>assignmentsAfter</name>
      </ownedOperation>
      <name>NonFinalClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Block" xmi:uuid="725A27D7-D3DC-48B1-9DBF-74F8572F7FC0" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Block-ownedComment" xmi:uuid="725A27D7-D3DC-4CE0-9921-74F891251694" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Block"/>
        <body>A grouped sequence of statements. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-Block-blockAssignmentsBeforeStatements" xmi:uuid="725A27D7-D3DC-48D9-92D4-74F85E86A4D6" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Block-blockAssignmentsBeforeStatements-ownedComment" xmi:uuid="725A27D7-D3DC-45AE-9912-74F8FAE69C02" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-blockAssignmentsBeforeStatements"/>
          <body>The assignments before each statement in a block other than the first are the same as the assignments after the previous statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-Block-blockAssignmentsBeforeStatements-specification" xmi:uuid="725A27D7-D3DC-42E9-9430-74F8629986B8" xmi:type="uml:OpaqueExpression"/>
        <name>blockAssignmentsBeforeStatements</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Block-blockAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4309-9467-74F80379412A" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Block-blockAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-467F-9F2D-74F863A25266" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-blockAssignmentsBefore"/>
          <body>The assignments before the first statement of a block are the same as the assignments before the block. </body>
        </ownedComment>
        <specification xmi:id="Alf-Block-blockAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-426B-9418-74F88EF00996" xmi:type="uml:OpaqueExpression"/>
        <name>blockAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Block-blockAssignmentAfterDerivation" xmi:uuid="725A27D7-D3DC-449B-9768-74F8936784CD" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Block-blockAssignmentAfterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-487D-94B6-74F80D29AD4F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-blockAssignmentAfterDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Block-blockAssignmentAfterDerivation-specification" xmi:uuid="725A27D7-D3DC-40E6-9F7B-74F895B8FB25" xmi:type="uml:OpaqueExpression"/>
        <name>blockAssignmentAfterDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-Block-generalization" xmi:uuid="725A27D7-D3DC-4EF8-92DC-74F8D7A23F99" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Block-statement" xmi:uuid="725A27D7-D3DC-4395-99F0-74F88F0E4DB0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Block-statement-ownedComment" xmi:uuid="725A27D7-D3DC-4E18-9EB8-74F8250BF25C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-statement"/>
          <body>The ordered sequence of statements in the block. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Block-statement-lowerValue" xmi:uuid="725A27D7-D3DC-4A7E-9FE5-74F8BC3361A0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Block-statement-upperValue" xmi:uuid="725A27D7-D3DC-495B-9418-74F8A45AF3BA" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>statement</name>
        <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="725A27D7-D3DC-4394-997D-74F848DB880C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Block-assignmentAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4A5B-9839-74F813E3C7C7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-assignmentAfter"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Block-assignmentAfter-lowerValue" xmi:uuid="725A27D7-D3DC-4149-9D5A-74F8EB5CF281" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Block-assignmentAfter-upperValue" xmi:uuid="725A27D7-D3DC-41BA-9373-74F86CDA79AD" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentAfter</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentAfter_block"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Block-assignmentBefore" xmi:uuid="725A27D7-D3DC-4B3F-9417-74F82E73ED75" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Block-assignmentBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4E7C-9FC0-74F85DF0DAFE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Block-assignmentBefore"/>
          <body>The assigned sources for local names available lexically before this block. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Block-assignmentBefore-lowerValue" xmi:uuid="725A27D7-D3DC-49A2-95A2-74F82BB5BF11" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Block-assignmentBefore-upperValue" xmi:uuid="725A27D7-D3DC-45BD-9FD3-74F8B0D210C4" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentBefore</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentBefore_block"/>
      </ownedAttribute>
      <name>Block</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-BlockStatement" xmi:uuid="725A27D7-D3DC-4201-9BE0-74F8EC6CA498" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BlockStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4FAA-9876-74F8105D5531" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BlockStatement"/>
        <body>A statement that executes a block. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BlockStatement-blockStatementParallelAssignments" xmi:uuid="725A27D7-D3DC-4AB9-91BD-74F83FCFCD36" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BlockStatement"/>
        <ownedComment xmi:id="Alf-BlockStatement-blockStatementParallelAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4209-9AB3-74F8F2511989" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-blockStatementParallelAssignments"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-BlockStatement-blockStatementParallelAssignments-specification" xmi:uuid="725A27D7-D3DC-4753-922B-74F8BF2899D5" xmi:type="uml:OpaqueExpression"/>
        <name>blockStatementParallelAssignments</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BlockStatement-blockStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-45FD-9C69-74F861927B80" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BlockStatement"/>
        <ownedComment xmi:id="Alf-BlockStatement-blockStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4CB3-9989-74F8C91B37E3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-blockStatementAssignmentsBefore"/>
          <body>The assignments before the block of a block statement are the same as the assignments before the block statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-BlockStatement-blockStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4AFA-950B-74F8E9E48815" xmi:type="uml:OpaqueExpression"/>
        <name>blockStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BlockStatement-blockStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-427A-9E12-74F8CC35057E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-BlockStatement"/>
        <ownedComment xmi:id="Alf-BlockStatement-blockStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4390-9F2B-74F82AC2AB6A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-blockStatementAssignmentsAfter"/>
          <body>The assignments after a block statement are the same as the assignments after the block of the block statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-BlockStatement-blockStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4638-95E3-74F84FF515BF" xmi:type="uml:OpaqueExpression"/>
        <name>blockStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BlockStatement-blockStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-44C2-9F58-74F88B0FC257" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-BlockStatement-blockStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-4A14-9E06-74F882E20ACF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-blockStatementEnclosedStatements"/>
          <body>The enclosing statement for all the statements in the block of a block statement is the block statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-BlockStatement-blockStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-4DBA-973E-74F864D50E5A" xmi:type="uml:OpaqueExpression"/>
        <name>blockStatementEnclosedStatements</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BlockStatement-blockStatementIsParallelDerivation" xmi:uuid="725A27D7-D3DC-4F8F-938A-74F8A56A2C06" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-BlockStatement-blockStatementIsParallelDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4C6F-99FB-74F88CC417F7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-blockStatementIsParallelDerivation"/>
          <body>A block statement is parallel if it has a @parallel annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-BlockStatement-blockStatementIsParallelDerivation-specification" xmi:uuid="725A27D7-D3DC-4174-9589-74F82D1B3F75" xmi:type="uml:OpaqueExpression"/>
        <name>blockStatementIsParallelDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-BlockStatement-generalization" xmi:uuid="725A27D7-D3DC-44D6-9EAB-74F8AB001C41" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BlockStatement-block" xmi:uuid="725A27D7-D3DC-4676-9777-74F838504A25" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-BlockStatement-block-ownedComment" xmi:uuid="725A27D7-D3DC-4B98-9598-74F83FAD6918" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-block"/>
          <body>The block to be executed. </body>
        </ownedComment>
        <name>block</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_block_blockStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-BlockStatement-isParallel" xmi:uuid="725A27D7-D3DC-427F-9D0D-74F80DC0417A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-BlockStatement-isParallel-ownedComment" xmi:uuid="725A27D7-D3DC-4075-9E38-74F8C6726F86" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-isParallel"/>
          <body>Whether the statements in the block of this block statement should be executed concurrently. </body>
        </ownedComment>
        <name>isParallel</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-BlockStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-447D-9D48-74F81C500401" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-BlockStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4377-9514-74F8E5002C5B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BlockStatement-annotationAllowed"/>
          <body>In addition to an @isolated annotation, a block statement may have a @parallel annotation. It may not have any arguments. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-BlockStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4FCC-968D-74F89B601AF0" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-BlockStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4ABA-9D66-74F8BEA1B085" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>BlockStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-DoStatement" xmi:uuid="725A27D7-D3DC-4AAF-91D1-74F8DC76A7B5" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-DoStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4852-98CB-74F850278807" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-DoStatement"/>
        <body>A looping statement for which the continuation condition is first tested after the first iteration. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-DoStatement-doStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4272-9F0D-74F8C1FBFD72" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-DoStatement"/>
        <ownedComment xmi:id="Alf-DoStatement-doStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4B39-9A70-74F83D534557" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-doStatementAssignmentsBefore"/>
          <body>The assignments before the block of a do statement are the same as the assignments before the do statement. The assignments before the condition expression of a do statement are the same assignments after the block. </body>
        </ownedComment>
        <specification xmi:id="Alf-DoStatement-doStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4E59-9E5C-74F81DA12967" xmi:type="uml:OpaqueExpression"/>
        <name>doStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-DoStatement-doStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4712-9F6F-74F8F5CE0228" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-DoStatement"/>
        <ownedComment xmi:id="Alf-DoStatement-doStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-429F-995B-74F83EF31DEA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-doStatementAssignmentsAfter"/>
          <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. </body>
        </ownedComment>
        <specification xmi:id="Alf-DoStatement-doStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-43DC-982D-74F81818FF81" xmi:type="uml:OpaqueExpression"/>
        <name>doStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-DoStatement-doStatementCondition" xmi:uuid="725A27D7-D3DC-460F-91EA-74F89F49F973" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-DoStatement"/>
        <ownedComment xmi:id="Alf-DoStatement-doStatementCondition-ownedComment" xmi:uuid="725A27D7-D3DC-44E1-9D55-74F857A72BA1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-doStatementCondition"/>
          <body>The condition expression of a do statement must have type Boolean and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-DoStatement-doStatementCondition-specification" xmi:uuid="725A27D7-D3DC-4163-93C7-74F87AF71C28" xmi:type="uml:OpaqueExpression"/>
        <name>doStatementCondition</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-DoStatement-doStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-41EA-9358-74F8D1EC792E" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-DoStatement-doStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-4842-9E41-74F89AD05144" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-doStatementEnclosedStatements"/>
          <body>The enclosing statement for all statements in the body of a do statement are the do statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-DoStatement-doStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-4B5D-9B0D-74F8C35E57E2" xmi:type="uml:OpaqueExpression"/>
        <name>doStatementEnclosedStatements</name>
      </ownedRule>
      <generalization xmi:id="Alf-DoStatement-generalization" xmi:uuid="725A27D7-D3DC-4122-959E-74F812019DAE" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-DoStatement-condition" xmi:uuid="725A27D7-D3DC-4C6A-91DB-74F857EF6072" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-DoStatement-condition-ownedComment" xmi:uuid="725A27D7-D3DC-4439-9A50-74F88627BC5C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-condition"/>
          <body>The expression to be evaluated to determine whether to continue looping. </body>
        </ownedComment>
        <name>condition</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_condition_doStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-DoStatement-body" xmi:uuid="725A27D7-D3DC-4127-974B-74F81C2BF6A0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-DoStatement-body-ownedComment" xmi:uuid="725A27D7-D3DC-4E09-920D-74F85EF4EACC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DoStatement-body"/>
          <body>The sequence of statements to be iteratively executed. </body>
        </ownedComment>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_doStatement"/>
      </ownedAttribute>
      <name>DoStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ConcurrentClauses" xmi:uuid="725A27D7-D3DC-420A-9C58-74F80F96AA7D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ConcurrentClauses-ownedComment" xmi:uuid="725A27D7-D3DC-48ED-9FAF-74F835493499" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ConcurrentClauses"/>
        <body>A grouping of non-final conditional clauses to be tested concurrently. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4C63-9D96-74F80C3CE625" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConcurrentClauses"/>
        <ownedComment xmi:id="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4839-90D6-74F8FC2A4E7E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore"/>
          <body>The assignments before each of the clauses in a set of concurrent clauses are the same as the assignments before the concurrent clauses. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConcurrentClauses-concurrentClausesAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4121-932A-74F80DBCA1D2" xmi:type="uml:OpaqueExpression"/>
        <name>concurrentClausesAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ConcurrentClauses-concurrentClausesConditionAssignments" xmi:uuid="725A27D7-D3DC-4EED-9480-74F8E63AB562" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ConcurrentClauses"/>
        <ownedComment xmi:id="Alf-ConcurrentClauses-concurrentClausesConditionAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4E4E-93B1-74F8FCA5F730" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConcurrentClauses-concurrentClausesConditionAssignments"/>
          <body>The same name may not be assigned in more than one conditional expression within the same concurrent set of clauses. </body>
        </ownedComment>
        <specification xmi:id="Alf-ConcurrentClauses-concurrentClausesConditionAssignments-specification" xmi:uuid="725A27D7-D3DC-4857-92D0-74F8DF7F0770" xmi:type="uml:OpaqueExpression"/>
        <name>concurrentClausesConditionAssignments</name>
      </ownedRule>
      <generalization xmi:id="Alf-ConcurrentClauses-generalization" xmi:uuid="725A27D7-D3DC-47C6-9E65-74F81DAC5DD9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ConcurrentClauses-clause" xmi:uuid="725A27D7-D3DC-429B-9EEF-74F8A6FD82FC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ConcurrentClauses-clause-ownedComment" xmi:uuid="725A27D7-D3DC-413F-9877-74F82912693F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ConcurrentClauses-clause"/>
          <body>The conditional clauses in the group. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-ConcurrentClauses-clause-upperValue" xmi:uuid="725A27D7-D3DC-4BE3-9914-74F82A27C599" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>clause</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-NonFinalClause"/>
        <association xmi:idref="Alf-A_clause_concurrentClauses"/>
      </ownedAttribute>
      <name>ConcurrentClauses</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-BreakStatement" xmi:uuid="725A27D7-D3DC-4B38-995F-74F8E407AA66" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-BreakStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4B28-9AC4-74F8F47E9420" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-BreakStatement"/>
        <body>A statement that causes the termination of execution of an immediately enclosing block. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-BreakStatement-breakStatementTargetDerivation" xmi:uuid="725A27D7-D3DC-48E8-91C4-74F81C72C24C" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-BreakStatement-breakStatementTargetDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-407B-9F83-74F8879FEED7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BreakStatement-breakStatementTargetDerivation"/>
          <body>The target of a break statement is the innermost switch, while, do or for statement enclosing the break statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-BreakStatement-breakStatementTargetDerivation-specification" xmi:uuid="725A27D7-D3DC-4EFA-9C30-74F8EB5C2CB9" xmi:type="uml:OpaqueExpression"/>
        <name>breakStatementTargetDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-BreakStatement-breakStatementNonparallelTarget" xmi:uuid="725A27D7-D3DC-4A53-9509-74F8EE298E62" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-BreakStatement-breakStatementNonparallelTarget-ownedComment" xmi:uuid="725A27D7-D3DC-4164-970B-74F8486E6FA8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BreakStatement-breakStatementNonparallelTarget"/>
          <body>The target of a break statement may not have a @parallel annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-BreakStatement-breakStatementNonparallelTarget-specification" xmi:uuid="725A27D7-D3DC-477C-9EE0-74F8B94C9C9B" xmi:type="uml:OpaqueExpression"/>
        <name>breakStatementNonparallelTarget</name>
      </ownedRule>
      <generalization xmi:id="Alf-BreakStatement-generalization" xmi:uuid="725A27D7-D3DC-4485-9DF8-74F888BF134B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-BreakStatement-target" xmi:uuid="725A27D7-D3DC-4F7B-96D3-74F87FC41D61" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-BreakStatement-target-ownedComment" xmi:uuid="725A27D7-D3DC-4377-9F53-74F85EC20942" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BreakStatement-target"/>
          <body>The enclosing statement that is terminated by this break statement. </body>
        </ownedComment>
        <name>target</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-Statement"/>
        <association xmi:idref="Alf-A_target_breakStatement"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-BreakStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-4FF3-99B8-74F88ABB19DB" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-BreakStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4D16-9294-74F828A84092" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-BreakStatement-annotationAllowed"/>
          <body>A break statement may not have any annotations. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-BreakStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-456B-9809-74F84DD43DE6" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-BreakStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4331-9509-74F8CC38DA41" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>BreakStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ExpressionStatement" xmi:uuid="725A27D7-D3DC-404F-9ABF-74F82D8D453D" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ExpressionStatement-ownedComment" xmi:uuid="725A27D7-D3DC-461B-91A2-74F8F1C8EF76" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ExpressionStatement"/>
        <body>A statement that evaluates an expression when executed. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-491B-9E7C-74F85E520948" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ExpressionStatement"/>
        <ownedComment xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-440E-9846-74F89A4C0A74" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExpressionStatement-expressionStatementAssignmentsBefore"/>
          <body>The assignments before the expression of an expression statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4EC5-9637-74F82F6D7A3C" xmi:type="uml:OpaqueExpression"/>
        <name>expressionStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4E5E-9E1D-74F8FC6EDF31" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ExpressionStatement"/>
        <ownedComment xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4D2F-92E6-74F80DAFB413" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExpressionStatement-expressionStatementAssignmentsAfter"/>
          <body>The assignments after an expression statement are the same as the assignments after its expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-ExpressionStatement-expressionStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4C47-9D0A-74F8CE7A2FEE" xmi:type="uml:OpaqueExpression"/>
        <name>expressionStatementAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-ExpressionStatement-generalization" xmi:uuid="725A27D7-D3DC-451B-9638-74F8FF336363" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ExpressionStatement-expression" xmi:uuid="725A27D7-D3DC-479C-942B-74F89AF1287D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ExpressionStatement-expression-ownedComment" xmi:uuid="725A27D7-D3DC-45DC-9927-74F854BA40F2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ExpressionStatement-expression"/>
          <body>The expression to be evaluated. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_expressionStatement"/>
      </ownedAttribute>
      <name>ExpressionStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassifyStatement" xmi:uuid="725A27D7-D3DC-49AA-9251-74F87096853A" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassifyStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4ABB-97A8-74F81F956150" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassifyStatement"/>
        <body>A statement that changes the classification of an object. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementExpression" xmi:uuid="725A27D7-D3DC-4B7F-9934-74F8FFD86FDC" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4C85-91FE-74F807D1893E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementExpression"/>
          <body>The expression in a classify statement must have a class as its type and multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementExpression-specification" xmi:uuid="725A27D7-D3DC-4DEA-99DF-74F86119B458" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementExpression</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementClassNames" xmi:uuid="725A27D7-D3DC-4200-909E-74F809E731F0" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementClassNames-ownedComment" xmi:uuid="725A27D7-D3DC-4D3A-9F12-74F8F9A280F2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementClassNames"/>
          <body>All qualified names listed in the from or to lists of a classify statement must resolve to classes. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementClassNames-specification" xmi:uuid="725A27D7-D3DC-46F4-9184-74F8C7A4199C" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementClassNames</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementClasses" xmi:uuid="725A27D7-D3DC-4AF3-9F70-74F832784F6B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementClasses-ownedComment" xmi:uuid="725A27D7-D3DC-4BC0-9D93-74F81A5E3AF4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementClasses"/>
          <body>All the from and to classes of a classify statement must be subclasses of the type of the target expression and none of them may have a common superclass that is a subclass of the type of the target expression (that is, they must be disjoint subclasses). </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementClasses-specification" xmi:uuid="725A27D7-D3DC-48D2-9188-74F8CCEA883A" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementClasses</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4D5D-9865-74F8325C5165" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-497B-9C7E-74F83A65101D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementAssignmentsBefore"/>
          <body>The assignments before the expression of a classify statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-48D8-90A2-74F825D51D44" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-440C-9247-74F8A403A36A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassifyStatement"/>
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-44D9-96D9-74F8D2EC9206" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementAssignmentsAfter"/>
          <body>The assignments after a classify statement are the same as the assignments after its expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-41C7-9951-74F8FC397F5D" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementFromClassDerivation" xmi:uuid="725A27D7-D3DC-41E5-92CC-74F83BE7B35A" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementFromClassDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4E18-9B26-74F873CCC976" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementFromClassDerivation"/>
          <body>The from classes of a classify statement are the class referents of the qualified names in the from list for the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementFromClassDerivation-specification" xmi:uuid="725A27D7-D3DC-45A6-9538-74F8F8A37320" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementFromClassDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifyStatement-classifyStatementToClassDerivation" xmi:uuid="725A27D7-D3DC-4646-9B1A-74F88710865D" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassifyStatement-classifyStatementToClassDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4689-9013-74F8E77CF137" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-classifyStatementToClassDerivation"/>
          <body>The to classes of a classify statement are the class referents of the qualified names in the to list for the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifyStatement-classifyStatementToClassDerivation-specification" xmi:uuid="725A27D7-D3DC-465E-942C-74F870413F7A" xmi:type="uml:OpaqueExpression"/>
        <name>classifyStatementToClassDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-ClassifyStatement-generalization" xmi:uuid="725A27D7-D3DC-4853-9A45-74F8B9D07FA0" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-expression" xmi:uuid="725A27D7-D3DC-449B-9A57-74F85338CE0B" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifyStatement-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4EC4-9BE5-74F8691752C4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-expression"/>
          <body>The expression to be evaluated to obtain the object to be reclassified. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_classifyStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-fromList" xmi:uuid="725A27D7-D3DC-41EA-9A7D-74F8DE89272D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifyStatement-fromList-ownedComment" xmi:uuid="725A27D7-D3DC-435B-9A3F-74F81780B8A5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-fromList"/>
          <body>A list of names of classes to be removed as types of the object. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifyStatement-fromList-lowerValue" xmi:uuid="725A27D7-D3DC-4E54-9E89-74F854506F2E" xmi:type="uml:LiteralInteger"/>
        <name>fromList</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_fromList_classifyStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-toList" xmi:uuid="725A27D7-D3DC-40BA-9E36-74F8993B9DEC" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifyStatement-toList-ownedComment" xmi:uuid="725A27D7-D3DC-4F16-9632-74F8CA713192" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-toList"/>
          <body>A list of names of classes to be added as types of the object. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifyStatement-toList-lowerValue" xmi:uuid="725A27D7-D3DC-4B34-9FF7-74F87395CD12" xmi:type="uml:LiteralInteger"/>
        <name>toList</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_toList_classifyStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-fromClass" xmi:uuid="725A27D7-D3DC-4C9A-98AF-74F84960D893" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifyStatement-fromClass-ownedComment" xmi:uuid="725A27D7-D3DC-44BF-9865-74F8ABE7396E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-fromClass"/>
          <body>The classes denoted by the names in the from list. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifyStatement-fromClass-lowerValue" xmi:uuid="725A27D7-D3DC-48E9-9AB4-74F8DAAF00CD" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-ClassifyStatement-fromClass-upperValue" xmi:uuid="725A27D7-D3DC-4B31-929E-74F829B33344" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>fromClass</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_fromClass_classifyStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-toClass" xmi:uuid="725A27D7-D3DC-4151-9F6E-74F89B43C579" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifyStatement-toClass-ownedComment" xmi:uuid="725A27D7-D3DC-4C27-907C-74F8B7A8D6F3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-toClass"/>
          <body>The classes denoted by the names in the to list. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifyStatement-toClass-lowerValue" xmi:uuid="725A27D7-D3DC-4F86-9AE0-74F86037A0A4" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-ClassifyStatement-toClass-upperValue" xmi:uuid="725A27D7-D3DC-4500-91B1-74F86E571366" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>toClass</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_toClass_classifyStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifyStatement-isReclassifyAll" xmi:uuid="725A27D7-D3DC-49ED-9CE4-74F8AA9BF572" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ClassifyStatement-isReclassifyAll-ownedComment" xmi:uuid="725A27D7-D3DC-47E5-9CF1-74F866E5CFDA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifyStatement-isReclassifyAll"/>
          <body>Whether this classify statement reclassifies all types of the target object. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-ClassifyStatement-isReclassifyAll-defaultValue" xmi:uuid="725A27D7-D3DC-43C3-9915-74F8D1E28A5D" xmi:type="uml:LiteralBoolean"/>
        <name>isReclassifyAll</name>
      </ownedAttribute>
      <name>ClassifyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ForStatement" xmi:uuid="725A27D7-D3DC-41E5-9F9B-74F8292965BA" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ForStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4AD4-98EB-74F8681134F9" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ForStatement"/>
        <body>A looping statement that gives successive values to one or more loop variables on each iteration. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ForStatement-forStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-428F-986C-74F80DCAE29C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForStatement"/>
        <ownedComment xmi:id="Alf-ForStatement-forStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-49B9-9CBD-74F8C6BF204A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4BDE-9B08-74F812F15E77" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4ECC-9704-74F842E45485" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForStatement"/>
        <ownedComment xmi:id="Alf-ForStatement-forStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-43E7-994F-74F8363F2A42" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementAssignmentsAfter"/>
          <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 a name is unassigned after the for variable definitions, then it is unassigned after the for statement (even if it is assigned in the body of the for statement). If, after the loop variable definitions, a name has an assigned source, and it has a different assigned source after the body of the for statement, then the assigned source after the for statement is the for statement itself. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-42D2-9155-74F88104D30D" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementParallelAnnotationNames" xmi:uuid="725A27D7-D3DC-4A1B-96F7-74F895B34499" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForStatement"/>
        <ownedComment xmi:id="Alf-ForStatement-forStatementParallelAnnotationNames-ownedComment" xmi:uuid="725A27D7-D3DC-4418-9AD7-74F82E7BFD8F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementParallelAnnotationNames"/>
          <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 of [0..*]. These names may only be used within the body of the for statement as the first argument to for the CollectionFunctions::add behavior. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementParallelAnnotationNames-specification" xmi:uuid="725A27D7-D3DC-4662-9C2B-74F8940AFBB2" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementParallelAnnotationNames</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementParallelAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4B2E-9B02-74F8AEEF30D8" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ForStatement"/>
        <ownedComment xmi:id="Alf-ForStatement-forStatementParallelAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4AE9-96E9-74F814311BE9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementParallelAssignmentsAfter"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementParallelAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-478A-9B7D-74F8CCDD39B8" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementParallelAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementVariableDefinitions" xmi:uuid="725A27D7-D3DC-4D02-97E0-74F8B5433D05" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ForStatement-forStatementVariableDefinitions-ownedComment" xmi:uuid="725A27D7-D3DC-46B1-9A43-74F88761FED0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementVariableDefinitions"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementVariableDefinitions-specification" xmi:uuid="725A27D7-D3DC-4C2F-9B02-74F8AEDA47ED" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementVariableDefinitions</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementLoopVariables" xmi:uuid="725A27D7-D3DC-4535-9CB4-74F8E4A195F1" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ForStatement-forStatementLoopVariables-ownedComment" xmi:uuid="725A27D7-D3DC-4FAE-9C7E-74F8D3009E8E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementLoopVariables"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementLoopVariables-specification" xmi:uuid="725A27D7-D3DC-410F-9977-74F885E88653" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementLoopVariables</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementIsParallelDerivation" xmi:uuid="725A27D7-D3DC-4EED-99B1-74F867A3C806" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ForStatement-forStatementIsParallelDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B65-932D-74F8B2A94326" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementIsParallelDerivation"/>
          <body>A for statement is parallel if it has a @parallel annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementIsParallelDerivation-specification" xmi:uuid="725A27D7-D3DC-4D26-9A06-74F81265500C" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementIsParallelDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ForStatement-forStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-4200-9A47-74F85709BBDB" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ForStatement-forStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-44E4-9669-74F8FEFE2C11" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-forStatementEnclosedStatements"/>
          <body>The enclosing statement for all statements in the body of a for statement are the for statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ForStatement-forStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-45E3-9E7B-74F8F43875D6" xmi:type="uml:OpaqueExpression"/>
        <name>forStatementEnclosedStatements</name>
      </ownedRule>
      <generalization xmi:id="Alf-ForStatement-generalization" xmi:uuid="725A27D7-D3DC-47B6-9BC2-74F847DC76E2" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ForStatement-body" xmi:uuid="725A27D7-D3DC-481F-92A7-74F8A8363508" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ForStatement-body-ownedComment" xmi:uuid="725A27D7-D3DC-4975-990A-74F8FA1B8C45" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-body"/>
          <body>The sequence of statements to be iteratively executed. </body>
        </ownedComment>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_forStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ForStatement-variableDefinition" xmi:uuid="725A27D7-D3DC-4A67-9B27-74F831CD9FE8" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ForStatement-variableDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4BD6-91AB-74F82170F299" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-variableDefinition"/>
          <body>A list of definitions of one or more loop variables. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-ForStatement-variableDefinition-upperValue" xmi:uuid="725A27D7-D3DC-4B33-972D-74F815822436" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>variableDefinition</name>
        <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="725A27D7-D3DC-4677-9E20-74F8C8DB0198" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ForStatement-isParallel-ownedComment" xmi:uuid="725A27D7-D3DC-4048-967D-74F8D7152326" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-isParallel"/>
          <body>Whether the for statement is parallel. </body>
        </ownedComment>
        <name>isParallel</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ForStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-48E3-9EC5-74F8A9184D96" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ForStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4416-9B32-74F8448AC5DC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ForStatement-annotationAllowed"/>
          <body>In addition to an @isolated annotation, a for statement may have a @parallel annotation. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ForStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4DB2-9156-74F8647AA57C" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ForStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4384-9161-74F877947CE0" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>ForStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-IfStatement" xmi:uuid="725A27D7-D3DC-47E0-9406-74F8E9348EC3" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-IfStatement-ownedComment" xmi:uuid="725A27D7-D3DC-47BB-99CB-74F87FF904A5" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-IfStatement"/>
        <body>A conditional statement that executes (at most) one of a set of clauses based on boolean conditions. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-IfStatement-ifStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4E57-9E8E-74F8D2A866BD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IfStatement"/>
        <ownedComment xmi:id="Alf-IfStatement-ifStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4B5E-9218-74F8467F06BE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-ifStatementAssignmentsBefore"/>
          <body>The assignments before all the non-final clauses of an if statement are the same as the assignments before the if statement. If the statement has a final clause, then the assignments before that clause are also the same as the assignments before the if statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-IfStatement-ifStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4815-90E0-74F8939D0EAB" xmi:type="uml:OpaqueExpression"/>
        <name>ifStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IfStatement-ifStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-496D-9904-74F8DFF9F98B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-IfStatement"/>
        <ownedComment xmi:id="Alf-IfStatement-ifStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-454E-9A16-74F8DFA74EE8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-ifStatementAssignmentsAfter"/>
          <body>If an if statement does not have a final else clause, then any name that is not an out parameter and is unassigned before the if statement is unassigned after the if statement. If an if statement does have a final else clause, then any name that is unassigned before the if statement and is assigned after any one clause of the if statement must also be assigned after every other clause. The type of such names after the if statement is the effective common ancestor of the types of the name in each clause 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. 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. Otherwise, the assigned source of a name after the if statement is the same as before the if statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-IfStatement-ifStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4F51-9F16-74F87C46AC79" xmi:type="uml:OpaqueExpression"/>
        <name>ifStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IfStatement-ifStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-4683-974F-74F81BCCA1DB" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-IfStatement-ifStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-460D-9279-74F88C9736DC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-ifStatementEnclosedStatements"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-IfStatement-ifStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-488C-9D7B-74F80E0914A1" xmi:type="uml:OpaqueExpression"/>
        <name>ifStatementEnclosedStatements</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IfStatement-ifStatementIsAssuredDerivation" xmi:uuid="725A27D7-D3DC-4614-9E94-74F8F86826A4" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-IfStatement-ifStatementIsAssuredDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4EB1-9F72-74F8B8D470B4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-ifStatementIsAssuredDerivation"/>
          <body>An if statement is assured if it has an @assured annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-IfStatement-ifStatementIsAssuredDerivation-specification" xmi:uuid="725A27D7-D3DC-4832-9800-74F864EDCA89" xmi:type="uml:OpaqueExpression"/>
        <name>ifStatementIsAssuredDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-IfStatement-ifStatementIsDeterminateDerivation" xmi:uuid="725A27D7-D3DC-4ECC-95CC-74F85C318FDA" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-IfStatement-ifStatementIsDeterminateDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D57-944A-74F8CFB5871C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-ifStatementIsDeterminateDerivation"/>
          <body>An if statement is determinate if it has an @determinate annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-IfStatement-ifStatementIsDeterminateDerivation-specification" xmi:uuid="725A27D7-D3DC-4332-9982-74F8FBFBA82C" xmi:type="uml:OpaqueExpression"/>
        <name>ifStatementIsDeterminateDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-IfStatement-generalization" xmi:uuid="725A27D7-D3DC-4DE7-9DFD-74F8E2C4AF91" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-IfStatement-nonFinalClauses" xmi:uuid="725A27D7-D3DC-4F57-911B-74F882EE1136" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IfStatement-nonFinalClauses-ownedComment" xmi:uuid="725A27D7-D3DC-40B8-9DE6-74F858A718E2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-nonFinalClauses"/>
          <body>A list of groupings of concurrent clauses that are to be checked sequentially for a successful condition. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-IfStatement-nonFinalClauses-upperValue" xmi:uuid="725A27D7-D3DC-4FC2-9880-74F8B0F23C6D" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>nonFinalClauses</name>
        <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="725A27D7-D3DC-4F68-91AE-74F87FAD8A81" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-IfStatement-finalClause-ownedComment" xmi:uuid="725A27D7-D3DC-4089-91DC-74F8E9AAB060" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-finalClause"/>
          <body>A sequence of statements to be executed if no other clause has a successful condition. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-IfStatement-finalClause-lowerValue" xmi:uuid="725A27D7-D3DC-4DA0-9597-74F87C4AECD4" xmi:type="uml:LiteralInteger"/>
        <name>finalClause</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_finalClause_ifStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IfStatement-isAssured" xmi:uuid="725A27D7-D3DC-43DE-9EC2-74F831AD3F4E" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IfStatement-isAssured-ownedComment" xmi:uuid="725A27D7-D3DC-4527-967D-74F849F3EF36" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-isAssured"/>
          <body>Whether at least one condition in the if statement is assured to evaluate to true. </body>
        </ownedComment>
        <name>isAssured</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-IfStatement-isDeterminate" xmi:uuid="725A27D7-D3DC-4AF0-9FE1-74F87981176A" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-IfStatement-isDeterminate-ownedComment" xmi:uuid="725A27D7-D3DC-4609-9828-74F831B89655" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-isDeterminate"/>
          <body>Whether at most one condition in the if statement will ever to evaluate to true. </body>
        </ownedComment>
        <name>isDeterminate</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-IfStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-4B74-9E17-74F8E5B701EC" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-IfStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4ACA-9F3B-74F81E8F1D60" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-IfStatement-annotationAllowed"/>
          <body>In addition to an @isolated annotation, an if statement may have @assured and @determinate annotations. They may not have arguments. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-IfStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4EC3-9F7A-74F8D3E96324" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-IfStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4538-9726-74F83A41FC0B" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>IfStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SwitchStatement" xmi:uuid="725A27D7-D3DC-4A02-95D7-74F896CB93EF" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SwitchStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4801-9231-74F867E8A3F6" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SwitchStatement"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4D44-9A26-74F85851BC7A" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchStatement"/>
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4CDC-9A87-74F8AAA9809F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementAssignmentsBefore"/>
          <body>The assignments before all clauses of a switch statement are the same as the assignments after the expression of the switch statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4DB7-9D97-74F818190ACF" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementCaseAssignments" xmi:uuid="725A27D7-D3DC-4F45-9B63-74F8A8EC38C6" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchStatement"/>
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementCaseAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4D25-9772-74F861D7AE7E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementCaseAssignments"/>
          <body>The same local name may not be assigned in more than one case expression in a switch statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementCaseAssignments-specification" xmi:uuid="725A27D7-D3DC-49C6-9551-74F89F610D25" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementCaseAssignments</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4EC7-98C0-74F80C783506" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchStatement"/>
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-43D6-9442-74F857075BCE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementAssignmentsAfter"/>
          <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. Otherwise, the assigned source of a name after the switch statement is the same as before the switch statement. 
</body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4B50-92B4-74F863486E82" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementAssignments" xmi:uuid="725A27D7-D3DC-4B69-9D4D-74F8246B9CA1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchStatement"/>
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-44A9-9C3E-74F8DDB7C0EC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementAssignments"/>
          <body>If a switch statement does not have a final default clause, then any name that is not an out parameter and is unassigned before the switch statement is unassigned after the switch statement. If a switch statement does have a final default clause, then any name that is unassigned before the switch statement and is assigned after any one clause of the switch statement must also be assigned after every other clause. The type of such names after the switch statement is the effective common ancestor of the types of the name in each clause 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.  </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementAssignments-specification" xmi:uuid="725A27D7-D3DC-43E0-9AF3-74F8A18224A0" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementAssignments</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementExpression" xmi:uuid="725A27D7-D3DC-40E6-9672-74F81ADE5607" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementExpression-ownedComment" xmi:uuid="725A27D7-D3DC-4A5B-900B-74F84CBA5578" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementExpression"/>
          <body>A switch statement expression must have a multiplicity no greater than 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementExpression-specification" xmi:uuid="725A27D7-D3DC-440A-9213-74F8819FB5F2" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementExpression</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-4B38-982A-74F864765240" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-4D06-9E85-74F8C905DF45" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementEnclosedStatements"/>
          <body>A switch statement is the enclosing statement for the statements in all of its switch clauses. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-4AE0-9FF1-74F81A8B1858" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementEnclosedStatements</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementIsDeterminateDerivation" xmi:uuid="725A27D7-D3DC-4F8C-9B85-74F83CDEAFAE" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementIsDeterminateDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4EF3-9639-74F806331CCC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementIsDeterminateDerivation"/>
          <body>A switch statement is determinate if it has a @determinate annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementIsDeterminateDerivation-specification" xmi:uuid="725A27D7-D3DC-4496-9066-74F826BB0F7A" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementIsDeterminateDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchStatement-switchStatementIsAssuredDerivation" xmi:uuid="725A27D7-D3DC-4441-9626-74F849E61FBA" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SwitchStatement-switchStatementIsAssuredDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4420-9EB7-74F8C366682D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-switchStatementIsAssuredDerivation"/>
          <body>A switch statement is assured if it has an @assured annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchStatement-switchStatementIsAssuredDerivation-specification" xmi:uuid="725A27D7-D3DC-477C-9E68-74F80CD3CBCA" xmi:type="uml:OpaqueExpression"/>
        <name>switchStatementIsAssuredDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-SwitchStatement-generalization" xmi:uuid="725A27D7-D3DC-4F3B-90BB-74F84332F9E8" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SwitchStatement-nonDefaultClause" xmi:uuid="725A27D7-D3DC-4D64-98E3-74F8CEFD2B0A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SwitchStatement-nonDefaultClause-ownedComment" xmi:uuid="725A27D7-D3DC-4D6D-9FD1-74F85BBC344C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-nonDefaultClause"/>
          <body>The set of switch clauses whose cases are to be tested against the switch value. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SwitchStatement-nonDefaultClause-lowerValue" xmi:uuid="725A27D7-D3DC-4F3A-930A-74F81698A633" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-SwitchStatement-nonDefaultClause-upperValue" xmi:uuid="725A27D7-D3DC-4A17-90A2-74F89C984FA8" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>nonDefaultClause</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-SwitchClause"/>
        <association xmi:idref="Alf-A_nonDefaultClause_switchStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SwitchStatement-expression" xmi:uuid="725A27D7-D3DC-48C0-9F43-74F84771CDC0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SwitchStatement-expression-ownedComment" xmi:uuid="725A27D7-D3DC-40F0-92D5-74F8205AED57" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-expression"/>
          <body>The expression to be evaluated to provide the switch value. </body>
        </ownedComment>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_switchStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SwitchStatement-defaultClause" xmi:uuid="725A27D7-D3DC-4AAA-960C-74F8587078F4" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SwitchStatement-defaultClause-ownedComment" xmi:uuid="725A27D7-D3DC-4FA0-9985-74F80676B575" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-defaultClause"/>
          <body>A sequence of statements to be executed if no switch clause case matches the switch value. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-SwitchStatement-defaultClause-lowerValue" xmi:uuid="725A27D7-D3DC-474D-9090-74F82EDC1A7F" xmi:type="uml:LiteralInteger"/>
        <name>defaultClause</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_defaultClause_switchStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SwitchStatement-isAssured" xmi:uuid="725A27D7-D3DC-4A6C-92E1-74F8A50DBEE8" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SwitchStatement-isAssured-ownedComment" xmi:uuid="725A27D7-D3DC-4CD5-988A-74F88098AFA9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-isAssured"/>
          <body>Whether at least one case in the switch statement is assured to match. </body>
        </ownedComment>
        <name>isAssured</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SwitchStatement-isDeterminate" xmi:uuid="725A27D7-D3DC-4D87-9CF5-74F84F9E7912" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-SwitchStatement-isDeterminate-ownedComment" xmi:uuid="725A27D7-D3DC-430F-9662-74F8BDC3E05D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-isDeterminate"/>
          <body>Whether at most one case in the if statement will ever to match. </body>
        </ownedComment>
        <name>isDeterminate</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-SwitchStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-4D15-9D2B-74F86775E030" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-SwitchStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4E44-95D7-74F8B49A4A3D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchStatement-annotationAllowed"/>
          <body>In addition to an @isolated annotation, a switch statement may have @assured and @determinate annotations. They may not have arguments. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SwitchStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4CBA-9837-74F88CE6CFE1" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-SwitchStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4C50-9815-74F80C880E29" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>SwitchStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SwitchClause" xmi:uuid="725A27D7-D3DC-405E-947B-74F84FA17252" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SwitchClause-ownedComment" xmi:uuid="725A27D7-D3DC-4F32-95F1-74F837F69FEC" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SwitchClause"/>
        <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>
      </ownedComment>
      <ownedRule xmi:id="Alf-SwitchClause-switchClauseAssignmentsBefore" xmi:uuid="725A27D7-D3DC-41F3-9030-74F86E1B8450" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchClause"/>
        <ownedComment xmi:id="Alf-SwitchClause-switchClauseAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-406F-90E2-74F87E1C1641" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-switchClauseAssignmentsBefore"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SwitchClause-switchClauseAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4B78-9397-74F8BF516CE0" xmi:type="uml:OpaqueExpression"/>
        <name>switchClauseAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchClause-switchClauseCaseLocalNames" xmi:uuid="725A27D7-D3DC-42E2-9441-74F8548A2341" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchClause"/>
        <ownedComment xmi:id="Alf-SwitchClause-switchClauseCaseLocalNames-ownedComment" xmi:uuid="725A27D7-D3DC-4864-90BC-74F8A06197BC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-switchClauseCaseLocalNames"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-SwitchClause-switchClauseCaseLocalNames-specification" xmi:uuid="725A27D7-D3DC-47D3-90F6-74F8C8C5CEEA" xmi:type="uml:OpaqueExpression"/>
        <name>switchClauseCaseLocalNames</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-SwitchClause-switchClauseCases" xmi:uuid="725A27D7-D3DC-4505-93EE-74F8804B86D1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-SwitchClause"/>
        <ownedComment xmi:id="Alf-SwitchClause-switchClauseCases-ownedComment" xmi:uuid="725A27D7-D3DC-4911-9A3C-74F867AD18A3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-switchClauseCases"/>
          <body>All the case expressions of a switch clause must have a multiplicity no greater than 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-SwitchClause-switchClauseCases-specification" xmi:uuid="725A27D7-D3DC-4672-9760-74F8990328BB" xmi:type="uml:OpaqueExpression"/>
        <name>switchClauseCases</name>
      </ownedRule>
      <generalization xmi:id="Alf-SwitchClause-generalization" xmi:uuid="725A27D7-D3DC-4C2F-92D4-74F8EA4BF09B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-SwitchClause-case" xmi:uuid="725A27D7-D3DC-4EDE-9F0C-74F833173FEA" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SwitchClause-case-ownedComment" xmi:uuid="725A27D7-D3DC-4AB8-9B9E-74F826698980" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-case"/>
          <body>The expressions to be evaluated to provide values to test against the switch value. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-SwitchClause-case-upperValue" xmi:uuid="725A27D7-D3DC-45C2-99B5-74F80F688F04" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>case</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_case_switchClause"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-SwitchClause-block" xmi:uuid="725A27D7-D3DC-4B89-9344-74F866B236A4" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-SwitchClause-block-ownedComment" xmi:uuid="725A27D7-D3DC-423C-9F78-74F8AB125D11" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-block"/>
          <body>The sequence of statements that may be executed if one of the cases matches the switch value. </body>
        </ownedComment>
        <name>block</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_block_switchClause"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-SwitchClause-assignmentsBefore" xmi:uuid="725A27D7-D3DC-4CB3-963C-74F85161D277" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-SwitchClause-assignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-463C-90EE-74F831669EFB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-assignmentsBefore"/>
          <body>The assignments before a switch clause are the assignments before any case expression of the clause. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SwitchClause-assignmentsBefore-ownedParameter" xmi:uuid="725A27D7-D3DC-4433-9289-74F89903E67E" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SwitchClause-assignmentsBefore-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-48DE-9DC1-74F86192BC81" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SwitchClause-assignmentsBefore-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-40B9-9984-74F8AD8FA62A" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>assignmentsBefore</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-SwitchClause-assignmentsAfter" xmi:uuid="725A27D7-D3DC-46D9-9FFD-74F894C136EF" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-SwitchClause-assignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4994-94BA-74F8A8A64D9C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SwitchClause-assignmentsAfter"/>
          <body>The assignments after a switch clause are the assignments after the block of the switch clause. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SwitchClause-assignmentsAfter-ownedParameter" xmi:uuid="725A27D7-D3DC-4C14-9B89-74F8A86D1709" xmi:type="uml:Parameter">
          <lowerValue xmi:id="Alf-SwitchClause-assignmentsAfter-ownedParameter-lowerValue" xmi:uuid="725A27D7-D3DC-4286-9283-74F871B497EC" xmi:type="uml:LiteralUnlimitedNatural"/>
          <upperValue xmi:id="Alf-SwitchClause-assignmentsAfter-ownedParameter-upperValue" xmi:uuid="725A27D7-D3DC-41CD-96C3-74F8ED66FC57" xmi:type="uml:LiteralUnlimitedNatural">
            <value>*</value>
          </upperValue>
          <direction>return</direction>
          <type xmi:idref="Alf-AssignedSource"/>
        </ownedParameter>
        <name>assignmentsAfter</name>
      </ownedOperation>
      <name>SwitchClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-WhileStatement" xmi:uuid="725A27D7-D3DC-48CC-952B-74F8B28C108E" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-WhileStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4600-9528-74F8EBE1DCDA" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-WhileStatement"/>
        <body>A looping statement for which the continuation condition is first tested before the first iteration. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-WhileStatement-whileStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4F54-9F91-74F867533B8C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-WhileStatement"/>
        <ownedComment xmi:id="Alf-WhileStatement-whileStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-44B3-983B-74F8F247D8C4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-whileStatementAssignmentsBefore"/>
          <body>The assignments before the condition expression of a while statement are the same as the assignments before the while statement. The assignments before the block of the while statement are the same as the assignments after the condition expression. </body>
        </ownedComment>
        <specification xmi:id="Alf-WhileStatement-whileStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4E98-97D5-74F8A241A2BD" xmi:type="uml:OpaqueExpression"/>
        <name>whileStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-WhileStatement-whileStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4991-9636-74F82D1D8B57" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-WhileStatement"/>
        <ownedComment xmi:id="Alf-WhileStatement-whileStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4713-926A-74F8B90E53C3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-whileStatementAssignmentsAfter"/>
          <body>If a name is assigned before the block, but the assigned source for the name after the block is different than before the block, then the assigned source of the name after the while statement is the while statement. Otherwise it is the same as before the block. If a name is unassigned before the block of a while statement, then it is unassigned after the while statement, even if it is assigned after the block. 
</body>
        </ownedComment>
        <specification xmi:id="Alf-WhileStatement-whileStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4C01-9EFD-74F84F2588D8" xmi:type="uml:OpaqueExpression"/>
        <name>whileStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-WhileStatement-whileStatementCondition" xmi:uuid="725A27D7-D3DC-4B3C-9602-74F89AE724B0" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-WhileStatement-whileStatementCondition-ownedComment" xmi:uuid="725A27D7-D3DC-4E61-9AAB-74F86BC08354" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-whileStatementCondition"/>
          <body>The condition expression of a while statement must have type Boolean and a multiplicity upper bound of 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-WhileStatement-whileStatementCondition-specification" xmi:uuid="725A27D7-D3DC-40C2-9BC6-74F84ECEB51A" xmi:type="uml:OpaqueExpression"/>
        <name>whileStatementCondition</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-WhileStatement-whileStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-4162-9795-74F879340996" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-WhileStatement-whileStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-47C8-915A-74F8404A72C6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-whileStatementEnclosedStatements"/>
          <body>The enclosing statement for all statements in the body of a while statement are the while statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-WhileStatement-whileStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-4638-99EA-74F89C657069" xmi:type="uml:OpaqueExpression"/>
        <name>whileStatementEnclosedStatements</name>
      </ownedRule>
      <generalization xmi:id="Alf-WhileStatement-generalization" xmi:uuid="725A27D7-D3DC-41F0-92F5-74F8CD0F6389" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-WhileStatement-body" xmi:uuid="725A27D7-D3DC-4D27-9F34-74F8A394B053" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-WhileStatement-body-ownedComment" xmi:uuid="725A27D7-D3DC-4B9E-9A61-74F83CE1799F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-body"/>
          <body>The sequence of statements to be iteratively executed. </body>
        </ownedComment>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_whileStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-WhileStatement-condition" xmi:uuid="725A27D7-D3DC-4B51-96A3-74F8C5EC2F9D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-WhileStatement-condition-ownedComment" xmi:uuid="725A27D7-D3DC-4F82-984F-74F85EFD4C70" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-WhileStatement-condition"/>
          <body>The expression to be evaluated to determine whether to continue looping. </body>
        </ownedComment>
        <name>condition</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_condition_whileStatement"/>
      </ownedAttribute>
      <name>WhileStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ReturnStatement" xmi:uuid="725A27D7-D3DC-4A76-9CFD-74F8F3DEF45A" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ReturnStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4C63-9E75-74F835FEBC24" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ReturnStatement"/>
        <body>A statement that provides a value for the return parameter of an activity. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ReturnStatement-returnStatementContext" xmi:uuid="725A27D7-D3DC-4CC9-9B82-74F847CEA1A2" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ReturnStatement"/>
        <ownedComment xmi:id="Alf-ReturnStatement-returnStatementContext-ownedComment" xmi:uuid="725A27D7-D3DC-4CC8-9E7F-74F802D9E5FE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReturnStatement-returnStatementContext"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ReturnStatement-returnStatementContext-specification" xmi:uuid="725A27D7-D3DC-48FD-9B84-74F87B352B48" xmi:type="uml:OpaqueExpression"/>
        <name>returnStatementContext</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ReturnStatement-returnStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-4722-9171-74F84DBDB20B" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ReturnStatement"/>
        <ownedComment xmi:id="Alf-ReturnStatement-returnStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4ADC-9114-74F88805DDBF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReturnStatement-returnStatementAssignmentsBefore"/>
          <body>The assignments before the expression of a return statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ReturnStatement-returnStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4407-9252-74F8781536B5" xmi:type="uml:OpaqueExpression"/>
        <name>returnStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ReturnStatement-returnStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4D28-9BFA-74F84D053FBD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ReturnStatement"/>
        <ownedComment xmi:id="Alf-ReturnStatement-returnStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4933-9B89-74F8960A0833" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReturnStatement-returnStatementAssignmentsAfter"/>
          <body>The assignments after a return statement are the same as the assignments after the expression of the return statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-ReturnStatement-returnStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4E2E-90B4-74F8A29FD183" xmi:type="uml:OpaqueExpression"/>
        <name>returnStatementAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-ReturnStatement-generalization" xmi:uuid="725A27D7-D3DC-4B40-9771-74F87A0F5181" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ReturnStatement-expression" xmi:uuid="725A27D7-D3DC-4946-9BC1-74F804524C58" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ReturnStatement-expression-ownedComment" xmi:uuid="725A27D7-D3DC-4EA9-9ECE-74F8AE079A27" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReturnStatement-expression"/>
          <body>The expression to be evaluated to provide the returned value. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ReturnStatement-expression-lowerValue" xmi:uuid="725A27D7-D3DC-4378-97EE-74F88C2657AA" xmi:type="uml:LiteralInteger"/>
        <name>expression</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression_returnStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ReturnStatement-behavior" xmi:uuid="725A27D7-D3DC-4B17-9F4B-74F8F5BB59B0" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ReturnStatement-behavior-ownedComment" xmi:uuid="725A27D7-D3DC-4C45-988C-74F8290809C1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReturnStatement-behavior"/>
          <body>A reference to the enclosing behavior for this return statement. </body>
        </ownedComment>
        <name>behavior</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_behavior_returnStatement"/>
      </ownedAttribute>
      <name>ReturnStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-InLineStatement" xmi:uuid="725A27D7-D3DC-4F71-935C-74F8F90984CC" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-InLineStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4C22-988B-74F8EAD3701C" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-InLineStatement"/>
        <body>A statement that executes code in a language other than Alf. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-InLineStatement-inLineStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4CA2-9338-74F81546948E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-InLineStatement"/>
        <ownedComment xmi:id="Alf-InLineStatement-inLineStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4410-99E1-74F8CE9CAD69" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InLineStatement-inLineStatementAssignmentsAfter"/>
          <body>The assignments after an in-line statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-InLineStatement-inLineStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-41AB-9BB1-74F86EA0483F" xmi:type="uml:OpaqueExpression"/>
        <name>inLineStatementAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-InLineStatement-generalization" xmi:uuid="725A27D7-D3DC-4C1E-9E0A-74F8DD396AFC" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-InLineStatement-language" xmi:uuid="725A27D7-D3DC-4683-92B3-74F8EC06DCD6" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-InLineStatement-language-ownedComment" xmi:uuid="725A27D7-D3DC-4F75-94FD-74F878A48415" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InLineStatement-language"/>
          <body>The name of the language in which the code is written. </body>
        </ownedComment>
        <name>language</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-InLineStatement-code" xmi:uuid="725A27D7-D3DC-4096-9686-74F851C0FFD3" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-InLineStatement-code-ownedComment" xmi:uuid="725A27D7-D3DC-4724-980B-74F84F68D079" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-InLineStatement-code"/>
          <body>The in-line code to be executed. </body>
        </ownedComment>
        <name>code</name>
      </ownedAttribute>
      <name>InLineStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-AcceptStatement" xmi:uuid="725A27D7-D3DC-4CDE-9101-74F8E129B40C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-AcceptStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4A2C-9AA0-74F84B9005CE" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-AcceptStatement"/>
        <body>A statement used to accept the receipt of instances of one or more signals. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementContext" xmi:uuid="725A27D7-D3DC-47AF-9CAC-74F86EE82801" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementContext-ownedComment" xmi:uuid="725A27D7-D3DC-434A-951F-74F81FFE93F2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementContext"/>
          <body>An accept statement can only be used within the definition of an active behavior or the classifier behavior of an active class. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementContext-specification" xmi:uuid="725A27D7-D3DC-4106-92A0-74F8D2E0BFAF" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementContext</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementSignals" xmi:uuid="725A27D7-D3DC-4B85-9C30-74F8716D3016" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementSignals-ownedComment" xmi:uuid="725A27D7-D3DC-4606-9047-74F87D0BF40D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementSignals"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementSignals-specification" xmi:uuid="725A27D7-D3DC-4655-937E-74F8ECFAE362" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementSignals</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementNames" xmi:uuid="725A27D7-D3DC-4386-915C-74F87E500154" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementNames-ownedComment" xmi:uuid="725A27D7-D3DC-4815-9E84-74F8DE7713B9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementNames"/>
          <body>Any name defined in an accept block of an accept statement must be unassigned before the accept statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementNames-specification" xmi:uuid="725A27D7-D3DC-459C-98CB-74F89B5BF084" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementNames</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName" xmi:uuid="725A27D7-D3DC-478E-9132-74F8BFB08C8C" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName-ownedComment" xmi:uuid="725A27D7-D3DC-4E1B-97F1-74F8C0045E60" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementSimpleAcceptLocalName-specification" xmi:uuid="725A27D7-D3DC-4F90-97F4-74F806E89487" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementSimpleAcceptLocalName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName" xmi:uuid="725A27D7-D3DC-4D15-982D-74F80631F2B7" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName-ownedComment" xmi:uuid="725A27D7-D3DC-4499-9047-74F8A5BDD248" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementCompoundAcceptLocalName-specification" xmi:uuid="725A27D7-D3DC-41E8-9727-74F839135CAF" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementCompoundAcceptLocalName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsBefore" xmi:uuid="725A27D7-D3DC-44BA-94A2-74F8520D20BD" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-43E8-9AE2-74F89E844BC2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementAssignmentsBefore"/>
          <body>The assignments before any block of an accept statement are the assignments before the accept statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-4513-9058-74F83FE11D5E" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-404D-9F8F-74F832791817" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-47C2-9ECC-74F842B79346" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementAssignmentsAfter"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4B48-9522-74F81F5E533E" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementAssignmentsAfter</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementNewAssignments" xmi:uuid="725A27D7-D3DC-4F19-914D-74F864A6BCB5" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-AcceptStatement"/>
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementNewAssignments-ownedComment" xmi:uuid="725A27D7-D3DC-4A08-9A6B-74F8459AD645" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementNewAssignments"/>
          <body>If a name is unassigned before an accept statement and assigned in any block of an accept statement, then it must be assigned in every block. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementNewAssignments-specification" xmi:uuid="725A27D7-D3DC-4106-971D-74F8E924C83E" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementNewAssignments</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementIsSimpleDerivation" xmi:uuid="725A27D7-D3DC-4AC2-976E-74F8A612FFB8" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementIsSimpleDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F0C-9A59-74F874F5D377" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementIsSimpleDerivation"/>
          <body>An accept statement is simple if it has exactly one accept block and that accept block does not have a block. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementIsSimpleDerivation-specification" xmi:uuid="725A27D7-D3DC-40A4-977D-74F86288CF60" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementIsSimpleDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptStatement-acceptStatementEnclosedStatements" xmi:uuid="725A27D7-D3DC-4CB7-98A3-74F87690A131" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AcceptStatement-acceptStatementEnclosedStatements-ownedComment" xmi:uuid="725A27D7-D3DC-4E3B-9FFF-74F807D2E5A8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptStatementEnclosedStatements"/>
          <body>The enclosing statement for all statements in the blocks of all accept blocks of an accept statement is the accept statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptStatement-acceptStatementEnclosedStatements-specification" xmi:uuid="725A27D7-D3DC-44B1-9C38-74F89D0C25A4" xmi:type="uml:OpaqueExpression"/>
        <name>acceptStatementEnclosedStatements</name>
      </ownedRule>
      <generalization xmi:id="Alf-AcceptStatement-generalization" xmi:uuid="725A27D7-D3DC-4155-936B-74F82F7F4F64" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-AcceptStatement-acceptBlock" xmi:uuid="725A27D7-D3DC-44E8-9DBB-74F816AE0033" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AcceptStatement-acceptBlock-ownedComment" xmi:uuid="725A27D7-D3DC-408B-9FF0-74F8936D6B83" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-acceptBlock"/>
          <body>One or more blocks for accepting alternate groups of signals. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-AcceptStatement-acceptBlock-upperValue" xmi:uuid="725A27D7-D3DC-4E73-91E5-74F8E50EE35F" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>acceptBlock</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-AcceptBlock"/>
        <association xmi:idref="Alf-A_acceptBlock_acceptStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AcceptStatement-behavior" xmi:uuid="725A27D7-D3DC-44C5-9E3F-74F80C8EE600" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AcceptStatement-behavior-ownedComment" xmi:uuid="725A27D7-D3DC-4293-98DB-74F8BA5B7BC2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-behavior"/>
          <body>The behavior containing the accept statement. </body>
        </ownedComment>
        <name>behavior</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_behavior_acceptStatement"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AcceptStatement-isSimple" xmi:uuid="725A27D7-D3DC-46BD-9B12-74F8AEB1EC05" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-AcceptStatement-isSimple-ownedComment" xmi:uuid="725A27D7-D3DC-4938-9C02-74F8D59197FB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptStatement-isSimple"/>
          <body>Whether the accept statement is simple or not. </body>
        </ownedComment>
        <name>isSimple</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>AcceptStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-LoopVariableDefinition" xmi:uuid="725A27D7-D3DC-4799-96DC-74F838CDF8CC" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-LoopVariableDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4242-9FF0-74F80B0F4C44" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-LoopVariableDefinition"/>
        <body>The definition of a loop variable in a for statement. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation" xmi:uuid="725A27D7-D3DC-461A-9423-74F8DDD5EB36" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-477A-90DF-74F8F5A8F6BE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation"/>
          <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 argument type of the collection class. </body>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentAfterDerivation-specification" xmi:uuid="725A27D7-D3DC-4613-9614-74F8E54CC570" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionAssignmentAfterDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore" xmi:uuid="725A27D7-D3DC-482A-909B-74F84377DB06" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4BA7-99F5-74F8DA00AFFF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore"/>
          <body>The assignments before the expressions of a loop variable definition are the assignments before the loop variable definition.  </body>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionAssignmentsBefore-specification" xmi:uuid="725A27D7-D3DC-43B6-9438-74F84169A60A" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionAssignmentsBefore</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions" xmi:uuid="725A27D7-D3DC-4B47-9E3A-74F8A28E995F" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions-ownedComment" xmi:uuid="725A27D7-D3DC-4D5A-9D5C-74F816019454" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions"/>
          <body>If a loop variable definition has two expressions, then both expressions must have 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>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionRangeExpressions-specification" xmi:uuid="725A27D7-D3DC-4AD7-96B8-74F80ECF9107" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionRangeExpressions</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName" xmi:uuid="725A27D7-D3DC-4049-9514-74F80D65F6BB" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-LoopVariableDefinition"/>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName-ownedComment" xmi:uuid="725A27D7-D3DC-4A5F-99BB-74F8DAF07FB8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName"/>
          <body>If a loop variable definition has a type name, then this name must resolve to a non-template classifier. </body>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeName-specification" xmi:uuid="725A27D7-D3DC-4F2F-94CC-74F896B35225" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionTypeName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation" xmi:uuid="725A27D7-D3DC-48CB-9277-74F888109D4C" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4161-97CB-74F8B84C7EFC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-496F-9339-74F80917B12A" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType" xmi:uuid="725A27D7-D3DC-4F11-9881-74F83911E075" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType-ownedComment" xmi:uuid="725A27D7-D3DC-4A75-9EA9-74F896FE6FCA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionDeclaredType-specification" xmi:uuid="725A27D7-D3DC-4E1E-98AB-74F83FD602C0" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionDeclaredType</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation" xmi:uuid="725A27D7-D3DC-402D-9BA2-74F80EE71599" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-449C-907A-74F80ACD77AB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation"/>
          <body>Collection conversion is required for a loop variable definition if the type for the definition is the instantiation of a collection class and the multiplicity upper bound of the first expression is no greater than 1. </body>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionIsCollectionConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4CE4-91E2-74F81ACD4C6F" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionIsCollectionConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionVariable" xmi:uuid="725A27D7-D3DC-4408-9122-74F8363C612D" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionVariable-ownedComment" xmi:uuid="725A27D7-D3DC-46AC-98EB-74F852B0B332" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-loopVariableDefinitionVariable"/>
          <body>The variable name given in a loop variable definition must be unassigned after the expression or expressions in the definition. </body>
        </ownedComment>
        <specification xmi:id="Alf-LoopVariableDefinition-loopVariableDefinitionVariable-specification" xmi:uuid="725A27D7-D3DC-4A70-9489-74F886C119EA" xmi:type="uml:OpaqueExpression"/>
        <name>loopVariableDefinitionVariable</name>
      </ownedRule>
      <generalization xmi:id="Alf-LoopVariableDefinition-generalization" xmi:uuid="725A27D7-D3DC-44D9-90BC-74F82D04F96A" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-variable" xmi:uuid="725A27D7-D3DC-4E1F-9C6A-74F8E757CF5B" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-variable-ownedComment" xmi:uuid="725A27D7-D3DC-4D87-9BD2-74F842085BD3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-variable"/>
          <body>The name of the loop variable. </body>
        </ownedComment>
        <name>variable</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-expression1" xmi:uuid="725A27D7-D3DC-4B92-9A48-74F87D21C9E7" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-expression1-ownedComment" xmi:uuid="725A27D7-D3DC-416E-9141-74F81187A2F3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-expression1"/>
          <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>
        </ownedComment>
        <name>expression1</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression1_loopVariableDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-expression2" xmi:uuid="725A27D7-D3DC-4157-9D98-74F87B1DC382" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-expression2-ownedComment" xmi:uuid="725A27D7-D3DC-48A0-9496-74F82C1396CC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-expression2"/>
          <body>The expression to be evaluated to give the second value in a range of values to be assigned to the loop variable. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LoopVariableDefinition-expression2-lowerValue" xmi:uuid="725A27D7-D3DC-4A38-933A-74F82D2A3929" xmi:type="uml:LiteralInteger"/>
        <name>expression2</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_expression2_loopVariableDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-typeName" xmi:uuid="725A27D7-D3DC-4CD6-936B-74F8C5C67C0C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-448D-924B-74F830946352" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-typeName"/>
          <body>The declared type of the loop variable. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LoopVariableDefinition-typeName-lowerValue" xmi:uuid="725A27D7-D3DC-4FC7-9EB4-74F8E8F0027B" xmi:type="uml:LiteralInteger"/>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_loopVariableDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-typeIsInferred" xmi:uuid="725A27D7-D3DC-48E4-958E-74F8C4CB018D" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-typeIsInferred-ownedComment" xmi:uuid="725A27D7-D3DC-44AB-9ABE-74F8F84ADEC3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-typeIsInferred"/>
          <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>
        </ownedComment>
        <defaultValue xmi:id="Alf-LoopVariableDefinition-typeIsInferred-defaultValue" xmi:uuid="725A27D7-D3DC-405D-9974-74F816165D92" xmi:type="uml:LiteralBoolean">
          <value>true</value>
        </defaultValue>
        <name>typeIsInferred</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-isCollectionConversion" xmi:uuid="725A27D7-D3DC-4835-99DB-74F8A99780F7" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-isCollectionConversion-ownedComment" xmi:uuid="725A27D7-D3DC-42C5-962A-74F866889B9B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-isCollectionConversion"/>
          <body>Whether collection conversion is required. </body>
        </ownedComment>
        <name>isCollectionConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-type" xmi:uuid="725A27D7-D3DC-4C86-92D0-74F8322DB32C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-type-ownedComment" xmi:uuid="725A27D7-D3DC-402E-9419-74F8F67F95EE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-type"/>
          <body>The declared or inferred type of the loop variable. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LoopVariableDefinition-type-lowerValue" xmi:uuid="725A27D7-D3DC-4D03-9431-74F86C765DF5" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_type_loopVariableDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-isFirst" xmi:uuid="725A27D7-D3DC-4DD5-9188-74F8D75A5CCB" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-LoopVariableDefinition-isFirst-ownedComment" xmi:uuid="725A27D7-D3DC-4165-90F9-74F8C19EF5FF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-isFirst"/>
          <body>Whether this definition is the first in the list of definitions in the enclosing for statement. </body>
        </ownedComment>
        <name>isFirst</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-assignmentBefore" xmi:uuid="725A27D7-D3DC-45B4-9A04-74F8C5060FF3" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-assignmentBefore-ownedComment" xmi:uuid="725A27D7-D3DC-4341-9A19-74F8E9E02279" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-assignmentBefore"/>
          <body>The assigned sources for local names available lexically before this loop variable definition. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-LoopVariableDefinition-assignmentBefore-lowerValue" xmi:uuid="725A27D7-D3DC-4AE6-964F-74F8D0537BB9" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-LoopVariableDefinition-assignmentBefore-upperValue" xmi:uuid="725A27D7-D3DC-4B2E-9297-74F862461363" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentBefore</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentBefore_loopVariableDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-LoopVariableDefinition-assignmentAfter" xmi:uuid="725A27D7-D3DC-4BBA-97C3-74F8E1222C25" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-LoopVariableDefinition-assignmentAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4237-99F4-74F879514F2A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-LoopVariableDefinition-assignmentAfter"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-LoopVariableDefinition-assignmentAfter-lowerValue" xmi:uuid="725A27D7-D3DC-4808-9605-74F8A6216D1C" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-LoopVariableDefinition-assignmentAfter-upperValue" xmi:uuid="725A27D7-D3DC-4446-98B2-74F8FD869110" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>assignmentAfter</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-AssignedSource"/>
        <association xmi:idref="Alf-A_assignmentAfter_loopVariableDefinition"/>
      </ownedAttribute>
      <name>LoopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-AcceptBlock" xmi:uuid="725A27D7-D3DC-472A-9152-74F803338DFE" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-AcceptBlock-ownedComment" xmi:uuid="725A27D7-D3DC-40A6-9A07-74F8460EEFD3" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-AcceptBlock"/>
        <body>A block of an accept statement that accepts one or more signals. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-AcceptBlock-acceptBlockSignalDerivation" xmi:uuid="725A27D7-D3DC-4AC0-9768-74F8A37B266A" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AcceptBlock-acceptBlockSignalDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A10-9453-74F8FE2C0992" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-acceptBlockSignalDerivation"/>
          <body>The signals of an accept block are the referents of the signal names of the accept block. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptBlock-acceptBlockSignalDerivation-specification" xmi:uuid="725A27D7-D3DC-4C39-94F5-74F80CB94541" xmi:type="uml:OpaqueExpression"/>
        <name>acceptBlockSignalDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-AcceptBlock-acceptBlockSignalNames" xmi:uuid="725A27D7-D3DC-43E5-9B3F-74F81F70512E" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AcceptBlock-acceptBlockSignalNames-ownedComment" xmi:uuid="725A27D7-D3DC-49C3-9834-74F8062E3AC1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-acceptBlockSignalNames"/>
          <body>All signal names in an accept block must resolve to signals. </body>
        </ownedComment>
        <specification xmi:id="Alf-AcceptBlock-acceptBlockSignalNames-specification" xmi:uuid="725A27D7-D3DC-41C2-960C-74F8E7DC9111" xmi:type="uml:OpaqueExpression"/>
        <name>acceptBlockSignalNames</name>
      </ownedRule>
      <generalization xmi:id="Alf-AcceptBlock-generalization" xmi:uuid="725A27D7-D3DC-4D1F-94E3-74F86EA16CA7" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-AcceptBlock-name" xmi:uuid="725A27D7-D3DC-4B2E-9064-74F831A883FE" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-AcceptBlock-name-ownedComment" xmi:uuid="725A27D7-D3DC-466F-9AA8-74F8E3BB7DD9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-name"/>
          <body>The local name to which an accepted signal instance will be assigned. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-AcceptBlock-name-lowerValue" xmi:uuid="725A27D7-D3DC-419D-95F0-74F8E1DE3FCA" xmi:type="uml:LiteralInteger"/>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AcceptBlock-block" xmi:uuid="725A27D7-D3DC-405E-9E5D-74F821A8DA76" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AcceptBlock-block-ownedComment" xmi:uuid="725A27D7-D3DC-4B4C-9BCB-74F8F6594E71" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-block"/>
          <body>The body of the accept block, executed if one of the named signals is received. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-AcceptBlock-block-lowerValue" xmi:uuid="725A27D7-D3DC-4D24-9F9A-74F83F875537" xmi:type="uml:LiteralInteger"/>
        <name>block</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_block_acceptBlock"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AcceptBlock-signalNames" xmi:uuid="725A27D7-D3DC-43F7-951F-74F8FE56FDD7" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AcceptBlock-signalNames-ownedComment" xmi:uuid="725A27D7-D3DC-43D2-9DE4-74F8A036D5F2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-signalNames"/>
          <body>A list of names of the signals accepted by this accept block. </body>
        </ownedComment>
        <name>signalNames</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_signalNames_acceptBlock"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-AcceptBlock-signal" xmi:uuid="725A27D7-D3DC-42EF-92CC-74F814220555" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-AcceptBlock-signal-ownedComment" xmi:uuid="725A27D7-D3DC-4CE2-944A-74F86D2E868D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AcceptBlock-signal"/>
          <body>The signals denoted by the signal names of the accept block. </body>
        </ownedComment>
        <upperValue xmi:id="Alf-AcceptBlock-signal-upperValue" xmi:uuid="725A27D7-D3DC-4291-996D-74F8DD952558" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>signal</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_signal_acceptBlock"/>
      </ownedAttribute>
      <name>AcceptBlock</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-EmptyStatement" xmi:uuid="725A27D7-D3DC-40DB-9810-74F8EB5C6A03" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-EmptyStatement-ownedComment" xmi:uuid="725A27D7-D3DC-4FDA-9FD1-74F8D883C8B7" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-EmptyStatement"/>
        <body>A statement that has no affect when executed. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-EmptyStatement-emptyStatementAssignmentsAfter" xmi:uuid="725A27D7-D3DC-4F7E-9492-74F8891B9355" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EmptyStatement"/>
        <ownedComment xmi:id="Alf-EmptyStatement-emptyStatementAssignmentsAfter-ownedComment" xmi:uuid="725A27D7-D3DC-4818-9003-74F8134CE78C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EmptyStatement-emptyStatementAssignmentsAfter"/>
          <body>The assignments after and empty statement are the same as the assignments before the statement. </body>
        </ownedComment>
        <specification xmi:id="Alf-EmptyStatement-emptyStatementAssignmentsAfter-specification" xmi:uuid="725A27D7-D3DC-4BC2-9C36-74F8A80AB883" xmi:type="uml:OpaqueExpression"/>
        <name>emptyStatementAssignmentsAfter</name>
      </ownedRule>
      <generalization xmi:id="Alf-EmptyStatement-generalization" xmi:uuid="725A27D7-D3DC-42A5-9800-74F8DF873F38" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Statement"/>
      </generalization>
      <ownedOperation xmi:id="Alf-EmptyStatement-annotationAllowed" xmi:uuid="725A27D7-D3DC-4719-9173-74F8421D1BA5" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Statement-annotationAllowed"/>
        <ownedComment xmi:id="Alf-EmptyStatement-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-480E-9969-74F86F049F18" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EmptyStatement-annotationAllowed"/>
          <body>An empty statement may not have any annotations. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EmptyStatement-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-41E1-9659-74F8371C8D37" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-Annotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-EmptyStatement-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4EC3-999D-74F88681F9A6" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>EmptyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_condition_nonFinalClause" xmi:uuid="725A27D7-D3DC-4421-9E1E-74F8CED82571" 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="725A27D7-D3DC-4405-9B0B-74F874B94B63" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_condition_nonFinalClause-nonFinalClause-lowerValue" xmi:uuid="725A27D7-D3DC-4FCE-9BDE-74F8E2D1317B" xmi:type="uml:LiteralInteger"/>
        <name>nonFinalClause</name>
        <type xmi:idref="Alf-NonFinalClause"/>
        <association xmi:idref="Alf-A_condition_nonFinalClause"/>
      </ownedEnd>
      <name>A_condition_nonFinalClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_body_whileStatement" xmi:uuid="725A27D7-D3DC-419F-9B35-74F8CCD729F3" 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="725A27D7-D3DC-4D54-9151-74F84FA50E94" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_whileStatement-whileStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4495-9417-74F89CE9A8B3" xmi:type="uml:LiteralInteger"/>
        <name>whileStatement</name>
        <type xmi:idref="Alf-WhileStatement"/>
        <association xmi:idref="Alf-A_body_whileStatement"/>
      </ownedEnd>
      <name>A_body_whileStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_variableDefinition_forStatement" xmi:uuid="725A27D7-D3DC-4F40-9EC7-74F82C58540A" 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="725A27D7-D3DC-46D1-93A8-74F89D56DC06" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_variableDefinition_forStatement-forStatement-lowerValue" xmi:uuid="725A27D7-D3DC-440A-96BB-74F88D62599F" xmi:type="uml:LiteralInteger"/>
        <name>forStatement</name>
        <type xmi:idref="Alf-ForStatement"/>
        <association xmi:idref="Alf-A_variableDefinition_forStatement"/>
      </ownedEnd>
      <name>A_variableDefinition_forStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_finalClause_ifStatement" xmi:uuid="725A27D7-D3DC-40ED-9F2D-74F8300E5EC9" 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="725A27D7-D3DC-46A2-98B8-74F88BA7FDFE" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_finalClause_ifStatement-ifStatement-lowerValue" xmi:uuid="725A27D7-D3DC-49F2-983E-74F85AEAD59B" xmi:type="uml:LiteralInteger"/>
        <name>ifStatement</name>
        <type xmi:idref="Alf-IfStatement"/>
        <association xmi:idref="Alf-A_finalClause_ifStatement"/>
      </ownedEnd>
      <name>A_finalClause_ifStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_signal_acceptBlock" xmi:uuid="725A27D7-D3DC-4615-9AC4-74F8344BA070" 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="725A27D7-D3DC-4F0A-90CF-74F89C0DD22A" xmi:type="uml:Property">
        <name>acceptBlock</name>
        <type xmi:idref="Alf-AcceptBlock"/>
        <association xmi:idref="Alf-A_signal_acceptBlock"/>
      </ownedEnd>
      <name>A_signal_acceptBlock</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_behavior_acceptStatement" xmi:uuid="725A27D7-D3DC-422F-9995-74F89FC20BF8" 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="725A27D7-D3DC-4B49-9C71-74F85F4B5282" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_behavior_acceptStatement-acceptStatement-lowerValue" xmi:uuid="725A27D7-D3DC-46F2-981F-74F873804527" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_behavior_acceptStatement-acceptStatement-upperValue" xmi:uuid="725A27D7-D3DC-4831-9489-74F8C151B766" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>acceptStatement</name>
        <type xmi:idref="Alf-AcceptStatement"/>
        <association xmi:idref="Alf-A_behavior_acceptStatement"/>
      </ownedEnd>
      <name>A_behavior_acceptStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_fromClass_classifyStatement" xmi:uuid="725A27D7-D3DC-47D7-9161-74F8156EF321" 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="725A27D7-D3DC-49F5-98DA-74F8AA3910F8" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_fromClass_classifyStatement-classifyStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4720-91B0-74F82A993EF3" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_fromClass_classifyStatement-classifyStatement-upperValue" xmi:uuid="725A27D7-D3DC-4398-9A9F-74F836551DAD" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>classifyStatement</name>
        <type xmi:idref="Alf-ClassifyStatement"/>
        <association xmi:idref="Alf-A_fromClass_classifyStatement"/>
      </ownedEnd>
      <name>A_fromClass_classifyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_returnStatement" xmi:uuid="725A27D7-D3DC-4C41-993E-74F85B818760" 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="725A27D7-D3DC-4595-91BA-74F829FE0091" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_returnStatement-returnStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4805-9303-74F84996E233" xmi:type="uml:LiteralInteger"/>
        <name>returnStatement</name>
        <type xmi:idref="Alf-ReturnStatement"/>
        <association xmi:idref="Alf-A_expression_returnStatement"/>
      </ownedEnd>
      <name>A_expression_returnStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression2_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-4372-9707-74F8365BF1E4" 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="725A27D7-D3DC-447D-933B-74F8F1452467" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression2_loopVariableDefinition-loopVariableDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4AC6-98B6-74F87A6E15D6" xmi:type="uml:LiteralInteger"/>
        <name>loopVariableDefinition</name>
        <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_doStatement" xmi:uuid="725A27D7-D3DC-46E4-920E-74F8ACFFA208" 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="725A27D7-D3DC-4053-908C-74F8091EA024" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_doStatement-doStatement-lowerValue" xmi:uuid="725A27D7-D3DC-42A2-923C-74F89C7D97FB" xmi:type="uml:LiteralInteger"/>
        <name>doStatement</name>
        <type xmi:idref="Alf-DoStatement"/>
        <association xmi:idref="Alf-A_body_doStatement"/>
      </ownedEnd>
      <name>A_body_doStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_case_switchClause" xmi:uuid="725A27D7-D3DC-49F8-9E75-74F8EE3135E0" 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="725A27D7-D3DC-4840-9120-74F8709BB3A2" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_case_switchClause-switchClause-lowerValue" xmi:uuid="725A27D7-D3DC-4A22-90D6-74F8D8398896" xmi:type="uml:LiteralInteger"/>
        <name>switchClause</name>
        <type xmi:idref="Alf-SwitchClause"/>
        <association xmi:idref="Alf-A_case_switchClause"/>
      </ownedEnd>
      <name>A_case_switchClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_condition_doStatement" xmi:uuid="725A27D7-D3DC-44DB-91A0-74F882168AF2" 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="725A27D7-D3DC-471A-9532-74F893D20BE0" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_condition_doStatement-doStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4852-91C8-74F84E2D0BB2" xmi:type="uml:LiteralInteger"/>
        <name>doStatement</name>
        <type xmi:idref="Alf-DoStatement"/>
        <association xmi:idref="Alf-A_condition_doStatement"/>
      </ownedEnd>
      <name>A_condition_doStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentBefore_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-4C7F-9A4C-74F891E73B45" 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="725A27D7-D3DC-4E33-9091-74F855D0F129" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-47E3-9EDA-74F84CC8B818" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentBefore_loopVariableDefinition-loopVariableDefinition-upperValue" xmi:uuid="725A27D7-D3DC-4F9F-9A09-74F8E663CFD2" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>loopVariableDefinition</name>
        <type xmi:idref="Alf-LoopVariableDefinition"/>
        <association xmi:idref="Alf-A_assignmentBefore_loopVariableDefinition"/>
      </ownedEnd>
      <name>A_assignmentBefore_loopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_classifyStatement" xmi:uuid="725A27D7-D3DC-4510-923D-74F81ED21A62" 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="725A27D7-D3DC-4473-9F9A-74F810E80D0D" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_classifyStatement-classifyStatement-lowerValue" xmi:uuid="725A27D7-D3DC-41D1-9E0B-74F8A1C07071" xmi:type="uml:LiteralInteger"/>
        <name>classifyStatement</name>
        <type xmi:idref="Alf-ClassifyStatement"/>
        <association xmi:idref="Alf-A_expression_classifyStatement"/>
      </ownedEnd>
      <name>A_expression_classifyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_body_forStatement" xmi:uuid="725A27D7-D3DC-4AF9-9F0F-74F88E80665A" 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="725A27D7-D3DC-4897-92F3-74F86840A0BF" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_forStatement-forStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4867-995A-74F8DEA905E6" xmi:type="uml:LiteralInteger"/>
        <name>forStatement</name>
        <type xmi:idref="Alf-ForStatement"/>
        <association xmi:idref="Alf-A_body_forStatement"/>
      </ownedEnd>
      <name>A_body_forStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_condition_whileStatement" xmi:uuid="725A27D7-D3DC-4F33-9B5C-74F8F9829613" 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="725A27D7-D3DC-453C-96F9-74F8A2F37703" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_condition_whileStatement-whileStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4A72-99CB-74F8171C7CC1" xmi:type="uml:LiteralInteger"/>
        <name>whileStatement</name>
        <type xmi:idref="Alf-WhileStatement"/>
        <association xmi:idref="Alf-A_condition_whileStatement"/>
      </ownedEnd>
      <name>A_condition_whileStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_body_nonFinalClause" xmi:uuid="725A27D7-D3DC-4CA3-96D5-74F86DBCC2E5" 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="725A27D7-D3DC-40DA-9B9F-74F8CE3D58F8" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_nonFinalClause-nonFinalClause-lowerValue" xmi:uuid="725A27D7-D3DC-406E-9B21-74F828724E0F" xmi:type="uml:LiteralInteger"/>
        <name>nonFinalClause</name>
        <type xmi:idref="Alf-NonFinalClause"/>
        <association xmi:idref="Alf-A_body_nonFinalClause"/>
      </ownedEnd>
      <name>A_body_nonFinalClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_toClass_classifyStatement" xmi:uuid="725A27D7-D3DC-4871-9757-74F8CC846F45" 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="725A27D7-D3DC-4CB1-93FD-74F850AFBCAF" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_toClass_classifyStatement-classifyStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4C91-9329-74F8D7D80C3D" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_toClass_classifyStatement-classifyStatement-upperValue" xmi:uuid="725A27D7-D3DC-42DC-9FE8-74F8D86A6EE7" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>classifyStatement</name>
        <type xmi:idref="Alf-ClassifyStatement"/>
        <association xmi:idref="Alf-A_toClass_classifyStatement"/>
      </ownedEnd>
      <name>A_toClass_classifyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_block_acceptBlock" xmi:uuid="725A27D7-D3DC-498A-9F65-74F8C8A95F7F" 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="725A27D7-D3DC-4644-9427-74F899758B66" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_block_acceptBlock-acceptBlock-lowerValue" xmi:uuid="725A27D7-D3DC-47B1-9671-74F8B2D4F60D" xmi:type="uml:LiteralInteger"/>
        <name>acceptBlock</name>
        <type xmi:idref="Alf-AcceptBlock"/>
        <association xmi:idref="Alf-A_block_acceptBlock"/>
      </ownedEnd>
      <name>A_block_acceptBlock</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentAfter_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-4DF3-91FD-74F8954A27EF" 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="725A27D7-D3DC-4268-9749-74F8ED5B59D7" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4413-9BBB-74F866A76355" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentAfter_loopVariableDefinition-loopVariableDefinition-upperValue" xmi:uuid="725A27D7-D3DC-482C-90B4-74F889F34D1B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>loopVariableDefinition</name>
        <type xmi:idref="Alf-LoopVariableDefinition"/>
        <association xmi:idref="Alf-A_assignmentAfter_loopVariableDefinition"/>
      </ownedEnd>
      <name>A_assignmentAfter_loopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_behavior_returnStatement" xmi:uuid="725A27D7-D3DC-4702-998D-74F8021B7352" 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="725A27D7-D3DC-4565-90A6-74F8F32E5914" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_behavior_returnStatement-returnStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4FCA-99F3-74F8824EA9C1" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_behavior_returnStatement-returnStatement-upperValue" xmi:uuid="725A27D7-D3DC-4CFD-90C0-74F822DA6810" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>returnStatement</name>
        <type xmi:idref="Alf-ReturnStatement"/>
        <association xmi:idref="Alf-A_behavior_returnStatement"/>
      </ownedEnd>
      <name>A_behavior_returnStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_fromList_classifyStatement" xmi:uuid="725A27D7-D3DC-47D0-9608-74F8A5248B55" 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="725A27D7-D3DC-41EA-9861-74F8E32F66EA" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_fromList_classifyStatement-classifyStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4E43-9B27-74F87285B4CC" xmi:type="uml:LiteralInteger"/>
        <name>classifyStatement</name>
        <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="725A27D7-D3DC-4499-95FC-74F86946A3F1" 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="725A27D7-D3DC-409B-9BC8-74F8C8392370" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_signalNames_acceptBlock-acceptBlock-lowerValue" xmi:uuid="725A27D7-D3DC-486E-9C97-74F814A399CF" xmi:type="uml:LiteralInteger"/>
        <name>acceptBlock</name>
        <type xmi:idref="Alf-AcceptBlock"/>
        <association xmi:idref="Alf-A_signalNames_acceptBlock"/>
      </ownedEnd>
      <name>A_signalNames_acceptBlock</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_annotation_statement" xmi:uuid="725A27D7-D3DC-41EE-97D7-74F8FB1B3933" 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="725A27D7-D3DC-49DE-99D0-74F8FEF72A00" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_annotation_statement-statement-lowerValue" xmi:uuid="725A27D7-D3DC-4482-9031-74F8E031454F" xmi:type="uml:LiteralInteger"/>
        <name>statement</name>
        <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_expressionStatement" xmi:uuid="725A27D7-D3DC-4220-9C75-74F8CBF47A28" 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="725A27D7-D3DC-4808-94C6-74F854CD9916" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_expressionStatement-expressionStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4314-9F19-74F865B20BE3" xmi:type="uml:LiteralInteger"/>
        <name>expressionStatement</name>
        <type xmi:idref="Alf-ExpressionStatement"/>
        <association xmi:idref="Alf-A_expression_expressionStatement"/>
      </ownedEnd>
      <name>A_expression_expressionStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_block_switchClause" xmi:uuid="725A27D7-D3DC-4839-9780-74F8CFCD4A9E" 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="725A27D7-D3DC-405A-930F-74F84A10AA8C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_block_switchClause-switchClause-lowerValue" xmi:uuid="725A27D7-D3DC-4019-984F-74F8E02AEA83" xmi:type="uml:LiteralInteger"/>
        <name>switchClause</name>
        <type xmi:idref="Alf-SwitchClause"/>
        <association xmi:idref="Alf-A_block_switchClause"/>
      </ownedEnd>
      <name>A_block_switchClause</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentBefore_block" xmi:uuid="725A27D7-D3DC-4C6E-91DF-74F8B2D69331" 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="725A27D7-D3DC-41A2-9DA3-74F8BD845912" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentBefore_block-block-lowerValue" xmi:uuid="725A27D7-D3DC-4E75-9D8A-74F80089E403" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentBefore_block-block-upperValue" xmi:uuid="725A27D7-D3DC-48F4-99A2-74F83C6EECF1" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>block</name>
        <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_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-4914-9BA1-74F8EF13C7F2" xmi:type="uml:Association">
      <memberEnd xmi:idref="Alf-LoopVariableDefinition-type"/>
      <memberEnd xmi:idref="Alf-A_type_loopVariableDefinition-ownedEnd"/>
      <ownedEnd xmi:id="Alf-A_type_loopVariableDefinition-ownedEnd" xmi:uuid="725A27D7-D3DC-460E-906E-74F8839BB63E" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_type_loopVariableDefinition-ownedEnd-lowerValue" xmi:uuid="725A27D7-D3DC-4CDE-926F-74F8D43931D5" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_type_loopVariableDefinition-ownedEnd-upperValue" xmi:uuid="725A27D7-D3DC-4A9B-92FE-74F8CD4D5AEA" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <type xmi:idref="Alf-LoopVariableDefinition"/>
        <association xmi:idref="Alf-A_type_loopVariableDefinition"/>
      </ownedEnd>
      <name>A_type_loopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-487D-96AA-74F830AEDDBA" 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="725A27D7-D3DC-4277-9C24-74F81F24C82F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_loopVariableDefinition-loopVariableDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-453A-985D-74F8B6EC7D90" xmi:type="uml:LiteralInteger"/>
        <name>loopVariableDefinition</name>
        <type xmi:idref="Alf-LoopVariableDefinition"/>
        <association xmi:idref="Alf-A_typeName_loopVariableDefinition"/>
      </ownedEnd>
      <name>A_typeName_loopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_block_blockStatement" xmi:uuid="725A27D7-D3DC-46A0-9F01-74F86D553FED" 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="725A27D7-D3DC-4441-9241-74F8BDC6F2EA" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_block_blockStatement-blockStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4A39-95B7-74F86F34EA5C" xmi:type="uml:LiteralInteger"/>
        <name>blockStatement</name>
        <type xmi:idref="Alf-BlockStatement"/>
        <association xmi:idref="Alf-A_block_blockStatement"/>
      </ownedEnd>
      <name>A_block_blockStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_statement_block" xmi:uuid="725A27D7-D3DC-4F17-9F3E-74F8774AC01A" 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="725A27D7-D3DC-49D5-9919-74F8959272C4" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_statement_block-block-lowerValue" xmi:uuid="725A27D7-D3DC-44DD-9430-74F814CFD042" xmi:type="uml:LiteralInteger"/>
        <name>block</name>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_statement_block"/>
      </ownedEnd>
      <name>A_statement_block</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_nonFinalClauses_ifStatement" xmi:uuid="725A27D7-D3DC-4211-938B-74F80A6F4FE2" 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="725A27D7-D3DC-4EBB-99E2-74F8EA468AA7" xmi:type="uml:Property">
        <name>ifStatement</name>
        <type xmi:idref="Alf-IfStatement"/>
        <association xmi:idref="Alf-A_nonFinalClauses_ifStatement"/>
      </ownedEnd>
      <name>A_nonFinalClauses_ifStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_switchStatement" xmi:uuid="725A27D7-D3DC-4A1A-9D9A-74F8F07ED188" 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="725A27D7-D3DC-46F5-9131-74F8DC49BCD5" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_switchStatement-switchStatement-lowerValue" xmi:uuid="725A27D7-D3DC-444D-9190-74F80B050B87" xmi:type="uml:LiteralInteger"/>
        <name>switchStatement</name>
        <type xmi:idref="Alf-SwitchStatement"/>
        <association xmi:idref="Alf-A_expression_switchStatement"/>
      </ownedEnd>
      <name>A_expression_switchStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentAfter_statement" xmi:uuid="725A27D7-D3DC-403D-9440-74F8EABDEE35" 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="725A27D7-D3DC-4392-9132-74F87E0B071A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentAfter_statement-statement-lowerValue" xmi:uuid="725A27D7-D3DC-4A11-968A-74F81946291B" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentAfter_statement-statement-upperValue" xmi:uuid="725A27D7-D3DC-4434-9729-74F82755C936" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>statement</name>
        <type xmi:idref="Alf-Statement"/>
        <association xmi:idref="Alf-A_assignmentAfter_statement"/>
      </ownedEnd>
      <name>A_assignmentAfter_statement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_name_qualifiedNameList" xmi:uuid="725A27D7-D3DC-4321-9DA3-74F83AFE1A04" 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="725A27D7-D3DC-48EA-95A1-74F8867E0F7D" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_name_qualifiedNameList-qualifiedNameList-lowerValue" xmi:uuid="725A27D7-D3DC-439E-92D7-74F837B6BCAB" xmi:type="uml:LiteralInteger"/>
        <name>qualifiedNameList</name>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_name_qualifiedNameList"/>
      </ownedEnd>
      <name>A_name_qualifiedNameList</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_localNameDeclarationStatement" xmi:uuid="725A27D7-D3DC-47D8-97E2-74F8E0268E43" 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="725A27D7-D3DC-4D10-918B-74F8B1C517C1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_localNameDeclarationStatement-localNameDeclarationStatement-lowerValue" xmi:uuid="725A27D7-D3DC-402C-95AD-74F8CA710D05" xmi:type="uml:LiteralInteger"/>
        <name>localNameDeclarationStatement</name>
        <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <association xmi:idref="Alf-A_typeName_localNameDeclarationStatement"/>
      </ownedEnd>
      <name>A_typeName_localNameDeclarationStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_enclosingStatement_statement" xmi:uuid="725A27D7-D3DC-469D-91B5-74F87E364684" 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="725A27D7-D3DC-4CDD-9C28-74F8CB72F4D1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_enclosingStatement_statement-statement-lowerValue" xmi:uuid="725A27D7-D3DC-4D8E-94E1-74F8E28FC968" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_enclosingStatement_statement-statement-upperValue" xmi:uuid="725A27D7-D3DC-4327-9782-74F808BB3152" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>statement</name>
        <type xmi:idref="Alf-Statement"/>
        <association xmi:idref="Alf-A_enclosingStatement_statement"/>
      </ownedEnd>
      <name>A_enclosingStatement_statement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_target_breakStatement" xmi:uuid="725A27D7-D3DC-4446-9963-74F84FA52160" 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="725A27D7-D3DC-4ACB-9F0F-74F861F0DD29" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_target_breakStatement-breakStatement-lowerValue" xmi:uuid="725A27D7-D3DC-42FE-9D3B-74F8EA363408" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_target_breakStatement-breakStatement-upperValue" xmi:uuid="725A27D7-D3DC-41F3-9FAA-74F8D0642B33" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>breakStatement</name>
        <type xmi:idref="Alf-BreakStatement"/>
        <association xmi:idref="Alf-A_target_breakStatement"/>
      </ownedEnd>
      <name>A_target_breakStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_defaultClause_switchStatement" xmi:uuid="725A27D7-D3DC-4BEF-9AFE-74F84BF388C8" 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="725A27D7-D3DC-4224-9E01-74F8C195971F" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_defaultClause_switchStatement-switchStatement-lowerValue" xmi:uuid="725A27D7-D3DC-416F-9800-74F8E41A52AF" xmi:type="uml:LiteralInteger"/>
        <name>switchStatement</name>
        <type xmi:idref="Alf-SwitchStatement"/>
        <association xmi:idref="Alf-A_defaultClause_switchStatement"/>
      </ownedEnd>
      <name>A_defaultClause_switchStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression_localNameDeclarationStatement" xmi:uuid="725A27D7-D3DC-4B08-955B-74F8E6CA6489" 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="725A27D7-D3DC-4867-927B-74F8DD3B57A0" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression_localNameDeclarationStatement-localNameDeclarationStatement-lowerValue" xmi:uuid="725A27D7-D3DC-479D-94FB-74F84556BDA4" xmi:type="uml:LiteralInteger"/>
        <name>localNameDeclarationStatement</name>
        <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <association xmi:idref="Alf-A_expression_localNameDeclarationStatement"/>
      </ownedEnd>
      <name>A_expression_localNameDeclarationStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentBefore_statement" xmi:uuid="725A27D7-D3DC-4F1C-98D8-74F89425AE4E" 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="725A27D7-D3DC-4475-99C1-74F8BCA01652" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentBefore_statement-statement-lowerValue" xmi:uuid="725A27D7-D3DC-48FA-92A0-74F85997828C" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentBefore_statement-statement-upperValue" xmi:uuid="725A27D7-D3DC-43DF-9B8B-74F840C501CC" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>statement</name>
        <type xmi:idref="Alf-Statement"/>
        <association xmi:idref="Alf-A_assignmentBefore_statement"/>
      </ownedEnd>
      <name>A_assignmentBefore_statement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_clause_concurrentClauses" xmi:uuid="725A27D7-D3DC-4DD0-9596-74F8B23936AC" 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="725A27D7-D3DC-4C13-9EF9-74F88E6E2C57" xmi:type="uml:Property">
        <name>concurrentClauses</name>
        <type xmi:idref="Alf-ConcurrentClauses"/>
        <association xmi:idref="Alf-A_clause_concurrentClauses"/>
      </ownedEnd>
      <name>A_clause_concurrentClauses</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_acceptBlock_acceptStatement" xmi:uuid="725A27D7-D3DC-4392-99AF-74F806B9B41F" 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="725A27D7-D3DC-41B7-9FE2-74F8067153FA" xmi:type="uml:Property">
        <name>acceptStatement</name>
        <type xmi:idref="Alf-AcceptStatement"/>
        <association xmi:idref="Alf-A_acceptBlock_acceptStatement"/>
      </ownedEnd>
      <name>A_acceptBlock_acceptStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_toList_classifyStatement" xmi:uuid="725A27D7-D3DC-44F4-9EA0-74F8C530D1E0" 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="725A27D7-D3DC-407D-9FF0-74F8F733C5D2" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_toList_classifyStatement-classifyStatement-lowerValue" xmi:uuid="725A27D7-D3DC-4ED0-951C-74F8DCFA6170" xmi:type="uml:LiteralInteger"/>
        <name>classifyStatement</name>
        <type xmi:idref="Alf-ClassifyStatement"/>
        <association xmi:idref="Alf-A_toList_classifyStatement"/>
      </ownedEnd>
      <name>A_toList_classifyStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_type_localNameDeclarationStatement" xmi:uuid="725A27D7-D3DC-4934-952D-74F80284260F" 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="725A27D7-D3DC-4DE5-97E1-74F8F45556B2" xmi:type="uml:Property">
        <name>localNameDeclarationStateament</name>
        <type xmi:idref="Alf-LocalNameDeclarationStatement"/>
        <association xmi:idref="Alf-A_type_localNameDeclarationStatement"/>
      </ownedEnd>
      <name>A_type_localNameDeclarationStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_assignmentAfter_block" xmi:uuid="725A27D7-D3DC-41B2-9FE7-74F862B51DCE" 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="725A27D7-D3DC-4447-92FE-74F8578A5A40" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_assignmentAfter_block-block-lowerValue" xmi:uuid="725A27D7-D3DC-449F-998F-74F8389CF172" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_assignmentAfter_block-block-upperValue" xmi:uuid="725A27D7-D3DC-4AF4-9442-74F840EF24C1" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>block</name>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_assignmentAfter_block"/>
      </ownedEnd>
      <name>A_assignmentAfter_block</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_nonDefaultClause_switchStatement" xmi:uuid="725A27D7-D3DC-4DFE-968E-74F87CF1D37D" 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="725A27D7-D3DC-4A50-926A-74F8181B80AD" xmi:type="uml:Property">
        <name>switchStatement</name>
        <type xmi:idref="Alf-SwitchStatement"/>
        <association xmi:idref="Alf-A_nonDefaultClause_switchStatement"/>
      </ownedEnd>
      <name>A_nonDefaultClause_switchStatement</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_expression1_loopVariableDefinition" xmi:uuid="725A27D7-D3DC-4089-9F6F-74F88AFF9DF6" 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="725A27D7-D3DC-433F-9A76-74F8D8222481" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_expression1_loopVariableDefinition-loopVariableDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4BD0-92C8-74F89E56C994" xmi:type="uml:LiteralInteger"/>
        <name>loopVariableDefinition</name>
        <type xmi:idref="Alf-LoopVariableDefinition"/>
        <association xmi:idref="Alf-A_expression1_loopVariableDefinition"/>
      </ownedEnd>
      <name>A_expression1_loopVariableDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-NamespaceDefinition" xmi:uuid="725A27D7-D3DC-48F4-9731-74F80460BDEE" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-NamespaceDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-49CB-99B3-74F833B53F6C" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-NamespaceDefinition"/>
        <body>A model of the common properties of the definition of a namespace in Alf. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation" xmi:uuid="725A27D7-D3DC-4422-9437-74F88AC005B6" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4431-9771-74F86A359B22" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDerivation-specification" xmi:uuid="725A27D7-D3DC-4634-92AB-74F8D3AC4BB7" xmi:type="uml:OpaqueExpression"/>
        <name>namespaceDefinitionMemberDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability" xmi:uuid="725A27D7-D3DC-45E0-9436-74F86863CBF2" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability-ownedComment" xmi:uuid="725A27D7-D3DC-4D88-9F80-74F83678A35C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability"/>
          <body>The members of a namespace must be distinguishable as determined by the Member::isDistinguishableFrom operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-NamespaceDefinition-namespaceDefinitionMemberDistinguishability-specification" xmi:uuid="725A27D7-D3DC-4881-93BF-74F88FC88864" xmi:type="uml:OpaqueExpression"/>
        <name>namespaceDefinitionMemberDistinguishability</name>
      </ownedRule>
      <generalization xmi:id="Alf-NamespaceDefinition-generalization" xmi:uuid="725A27D7-D3DC-4988-9EA4-74F8DEF61ABF" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Member"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-NamespaceDefinition-ownedMember" xmi:uuid="725A27D7-D3DC-4B52-9F58-74F8D67F089E" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamespaceDefinition-ownedMember-ownedComment" xmi:uuid="725A27D7-D3DC-4572-96E2-74F80C8F4551" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-ownedMember"/>
          <body>The definitions of owned members of the namespace. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NamespaceDefinition-ownedMember-lowerValue" xmi:uuid="725A27D7-D3DC-4598-9BD3-74F8CFDB47FE" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-NamespaceDefinition-ownedMember-upperValue" xmi:uuid="725A27D7-D3DC-4B79-9710-74F8B937CB4B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>ownedMember</name>
        <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="725A27D7-D3DC-4A27-93F8-74F86C2270BB" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamespaceDefinition-unit-ownedComment" xmi:uuid="725A27D7-D3DC-43E4-91A4-74F833768505" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-unit"/>
          <body>The unit for which this namespace is a definition, if any. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NamespaceDefinition-unit-lowerValue" xmi:uuid="725A27D7-D3DC-41A7-94E0-74F80AADE9AB" xmi:type="uml:LiteralInteger"/>
        <name>unit</name>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_definition_unit"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-NamespaceDefinition-member" xmi:uuid="725A27D7-D3DC-40C5-91FA-74F816B49D09" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-NamespaceDefinition-member-ownedComment" xmi:uuid="725A27D7-D3DC-47B0-9A57-74F8CD522E24" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-member"/>
          <body>The owned and imported members of a namespace definition. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-NamespaceDefinition-member-lowerValue" xmi:uuid="725A27D7-D3DC-4D45-9AE7-74F8AE998E5D" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-NamespaceDefinition-member-upperValue" xmi:uuid="725A27D7-D3DC-41D5-9D4C-74F80F79D366" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>member</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-Member"/>
        <association xmi:idref="Alf-A_member_namespaceDefinition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-NamespaceDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4433-97E8-74F81D710566" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-NamespaceDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4F44-9528-74F8D1B33F6B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
          <body>Returns true if the annotation is @external. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-NamespaceDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-45B0-9445-74F87493C70A" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-NamespaceDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4FCB-96D2-74F8632F7429" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>NamespaceDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ImportedMember" xmi:uuid="725A27D7-D3DC-4729-967E-74F8D0D96DA8" xmi:type="uml:Class">
      <ownedRule xmi:id="Alf-ImportedMember-importedMemberNotStub" xmi:uuid="725A27D7-D3DC-4C7F-9643-74F87C231B45" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ImportedMember-importedMemberNotStub-ownedComment" xmi:uuid="725A27D7-D3DC-4718-98D3-74F831C4A33C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportedMember-importedMemberNotStub"/>
          <body>An imported element is not a stub. </body>
        </ownedComment>
        <specification xmi:id="Alf-ImportedMember-importedMemberNotStub-specification" xmi:uuid="725A27D7-D3DC-4682-93F0-74F845D84756" xmi:type="uml:OpaqueExpression"/>
        <name>importedMemberNotStub</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ImportedMember-importedMemberIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-48D1-9D62-74F8C48A64AD" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ImportedMember-importedMemberIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4394-9D43-74F8C3DF7925" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportedMember-importedMemberIsFeatureDerivation"/>
          <body>An imported element is a feature if its referent is a feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-ImportedMember-importedMemberIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4002-9100-74F8608796D8" xmi:type="uml:OpaqueExpression"/>
        <name>importedMemberIsFeatureDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-ImportedMember-generalization" xmi:uuid="725A27D7-D3DC-4475-9D05-74F82ADA81FF" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Member"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ImportedMember-referent" xmi:uuid="725A27D7-D3DC-49FE-9DEC-74F8424313CE" xmi:type="uml:Property">
        <name>referent</name>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_referent_importedMember"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ImportedMember-annotationAllowed" xmi:uuid="725A27D7-D3DC-4235-96B9-74F820B8E0BB" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ImportedMember-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4AEA-9E19-74F8C7D0F8BC" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportedMember-annotationAllowed"/>
          <body>Returns false. (Imported members do not have annotations.) </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ImportedMember-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4078-945D-74F8589C1447" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ImportedMember-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-495D-9C62-74F88E546B49" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ImportedMember-isSameKindAs" xmi:uuid="725A27D7-D3DC-409D-9CB5-74F8AB06107E" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-ImportedMember-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-41E1-92BB-74F83C34887A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportedMember-isSameKindAs"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ImportedMember-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4598-96CE-74F8488CF3BD" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-ImportedMember-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4DA6-972F-74F8FB1DE46A" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-ImportedMember-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ImportedMember-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-47AE-962D-74F8692546C1" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>ImportedMember</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-EnumerationLiteralName" xmi:uuid="725A27D7-D3DC-4515-9B50-74F87523FDE2" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-EnumerationLiteralName-ownedComment" xmi:uuid="725A27D7-D3DC-41A5-924F-74F802BC52E3" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-EnumerationLiteralName"/>
        <body>The definition of an enumeration literal, as a member of an enumeration definition. </body>
      </ownedComment>
      <generalization xmi:id="Alf-EnumerationLiteralName-generalization" xmi:uuid="725A27D7-D3DC-4815-9727-74F8BDE9929F" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Member"/>
      </generalization>
      <ownedOperation xmi:id="Alf-EnumerationLiteralName-annotationAllowed" xmi:uuid="725A27D7-D3DC-4F5A-99D4-74F8F4D5DB94" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-EnumerationLiteralName-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4C42-930E-74F88165BE67" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EnumerationLiteralName-annotationAllowed"/>
          <body>Returns false. (Enumeration literal name cannot have annotations.)  </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EnumerationLiteralName-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-41B8-9DD5-74F8AD6DA32E" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-EnumerationLiteralName-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4F41-979B-74F86B584602" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <name>EnumerationLiteralName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-OperationDefinition" xmi:uuid="725A27D7-D3DC-4126-94C9-74F801601479" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-OperationDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4DCA-983A-74F8F4A81C0F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-OperationDefinition"/>
        <body>The definition of an operation, with any formal parameters defined as owned members. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionNamespace" xmi:uuid="725A27D7-D3DC-42FE-9E3B-74F8D2502EFD" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionNamespace-ownedComment" xmi:uuid="725A27D7-D3DC-435F-9F1B-74F80364A886" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionNamespace"/>
          <body>The namespace for an operation definition must be a class definition. </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionNamespace-specification" xmi:uuid="725A27D7-D3DC-45AA-956A-74F85FE3A670" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionNamespace</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation" xmi:uuid="725A27D7-D3DC-46D9-92C6-74F8C9A83755" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41E3-9303-74F839C0F91C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperationDerivation-specification" xmi:uuid="725A27D7-D3DC-4717-9120-74F8D121D54F" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionRedefinedOperationDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionRedefinition" xmi:uuid="725A27D7-D3DC-4EBD-905A-74F857B6DA86" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionRedefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4C0C-96A0-74F88D884F7E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionRedefinition"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionRedefinition-specification" xmi:uuid="725A27D7-D3DC-4327-9C6A-74F8D1BAA9E9" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionRedefinition</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperations" xmi:uuid="725A27D7-D3DC-4967-9C19-74F8306F7FBA" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperations-ownedComment" xmi:uuid="725A27D7-D3DC-44AE-9CBC-74F8755F9EB4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionRedefinedOperations"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionRedefinedOperations-specification" xmi:uuid="725A27D7-D3DC-4F7A-93B8-74F8DEE74388" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionRedefinedOperations</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-4C9C-9B8D-74F84A19D446" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-49DE-93F1-74F8FCD5F164" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation"/>
          <body>An operation definition is a feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-49E1-91B1-74F822295882" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionIsFeatureDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation" xmi:uuid="725A27D7-D3DC-401C-9195-74F89F338A18" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D92-9ECF-74F83492E242" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation"/>
          <body>An operation definition is a constructor if it has a @Create annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionIsConstructorDerivation-specification" xmi:uuid="725A27D7-D3DC-416A-9DCC-74F8B69B2F9F" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionIsConstructorDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation" xmi:uuid="725A27D7-D3DC-451B-9170-74F878A61AFE" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-41A7-97CD-74F88F891A3B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation"/>
          <body>An operation definition is a destructor if it has a @Destroy annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionIsDestructorDerivation-specification" xmi:uuid="725A27D7-D3DC-48C7-97D0-74F83F7036BC" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionIsDestructorDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionConstructorDestructor" xmi:uuid="725A27D7-D3DC-4977-94E4-74F80228C9FC" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionConstructorDestructor-ownedComment" xmi:uuid="725A27D7-D3DC-4185-9F78-74F8A55ADD85" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionConstructorDestructor"/>
          <body>An operation definition cannot be both a constructor and a destructor. </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionConstructorDestructor-specification" xmi:uuid="725A27D7-D3DC-46D9-9527-74F83D3AC1D9" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionConstructorDestructor</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionConstructor" xmi:uuid="725A27D7-D3DC-49CF-9A13-74F8EB026561" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-4E44-93AB-74F85F50C454" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionConstructor"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionConstructor-specification" xmi:uuid="725A27D7-D3DC-4024-98D4-74F8755B9D6A" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionConstructor</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-OperationDefinition-operationDefinitionDestructor" xmi:uuid="725A27D7-D3DC-4762-9EA7-74F875168338" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-OperationDefinition-operationDefinitionDestructor-ownedComment" xmi:uuid="725A27D7-D3DC-4CC0-942B-74F88268E86E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-operationDefinitionDestructor"/>
          <body>If an operation definition is a destructor, any redefined operation for it must also be a destructor.  </body>
        </ownedComment>
        <specification xmi:id="Alf-OperationDefinition-operationDefinitionDestructor-specification" xmi:uuid="725A27D7-D3DC-4A8D-9E67-74F8ACBD68A0" xmi:type="uml:OpaqueExpression"/>
        <name>operationDefinitionDestructor</name>
      </ownedRule>
      <generalization xmi:id="Alf-OperationDefinition-generalization" xmi:uuid="725A27D7-D3DC-4FA2-9CBC-74F82F87CC10" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-NamespaceDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-OperationDefinition-redefinition" xmi:uuid="725A27D7-D3DC-4918-9678-74F8C78DA194" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-OperationDefinition-redefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4433-9B9C-74F84CF4EF31" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-redefinition"/>
          <body>The names of other operations that are redefined by the operation being defined. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-OperationDefinition-redefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4ECA-9E1A-74F8FB306490" xmi:type="uml:LiteralInteger"/>
        <name>redefinition</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_redefinition_operationDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-OperationDefinition-isAbstract" xmi:uuid="725A27D7-D3DC-48B9-945F-74F898DB5F73" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-OperationDefinition-isAbstract-ownedComment" xmi:uuid="725A27D7-D3DC-4BAA-9969-74F890CA8F1A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-isAbstract"/>
          <body>Whether the operation being defined is abstract. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-OperationDefinition-isAbstract-defaultValue" xmi:uuid="725A27D7-D3DC-4865-9450-74F8A0991E41" xmi:type="uml:LiteralBoolean"/>
        <name>isAbstract</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-OperationDefinition-body" xmi:uuid="725A27D7-D3DC-4AC7-9B4A-74F88D7EEE48" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-OperationDefinition-body-ownedComment" xmi:uuid="725A27D7-D3DC-4616-9476-74F8D7BDC277" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-body"/>
          <body>The sequence of statements that defines the behavior of the operation (empty for a stub). </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-OperationDefinition-body-lowerValue" xmi:uuid="725A27D7-D3DC-44F3-9053-74F8DB17818F" xmi:type="uml:LiteralInteger"/>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_operationDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-OperationDefinition-redefinedOperation" xmi:uuid="725A27D7-D3DC-44FB-9F53-74F85A0F2A51" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-OperationDefinition-redefinedOperation-lowerValue" xmi:uuid="725A27D7-D3DC-4D48-9D5D-74F8730FCC92" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-OperationDefinition-redefinedOperation-upperValue" xmi:uuid="725A27D7-D3DC-41F3-9B59-74F847CFF92E" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>redefinedOperation</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_redefinedOperation_operationDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-OperationDefinition-isConstructor" xmi:uuid="725A27D7-D3DC-4AB5-9403-74F8A81082D4" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-OperationDefinition-isConstructor-ownedComment" xmi:uuid="725A27D7-D3DC-4B41-9985-74F8445E4B6B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-isConstructor"/>
          <body>Whether this operation definition is for a constructor. </body>
        </ownedComment>
        <name>isConstructor</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-OperationDefinition-isDestructor" xmi:uuid="725A27D7-D3DC-49C4-964A-74F81743F097" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-OperationDefinition-isDestructor-ownedComment" xmi:uuid="725A27D7-D3DC-4E66-9608-74F87233CB62" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-isDestructor"/>
          <body>Whether this operation definition is for a destructor. </body>
        </ownedComment>
        <name>isDestructor</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-OperationDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-495C-906E-74F83164B652" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-OperationDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4D42-9843-74F86BB78420" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-annotationAllowed"/>
          <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Operation. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-OperationDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4E28-9D06-74F8E2B52F93" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-OperationDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4C70-99D2-74F8CF61750E" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-OperationDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-41AF-940C-74F8BA83E2DC" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
        <ownedComment xmi:id="Alf-OperationDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-437D-9B94-74F85658E9B1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-OperationDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4524-96DC-74F83F3A8C95" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-OperationDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4F1C-9F2D-74F8A2601B87" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-OperationDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-48E2-97CD-74F8248147CB" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-OperationDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-42A4-9F62-74F812FE15B2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-OperationDefinition-isSameKindAs"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-OperationDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-41F6-9983-74F87A167D04" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-OperationDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4727-9BC0-74F8DAE66B6E" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-OperationDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-OperationDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4CA0-9BE8-74F8F4CEA526" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>OperationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-UnitDefinition" xmi:uuid="725A27D7-D3DC-484A-9CCC-74F88F531950" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-UnitDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4D1A-97DA-74F83650AAE9" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-UnitDefinition"/>
        <body>The definition of a namespace as an Alf unit. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionNamespaceDerivation" xmi:uuid="725A27D7-D3DC-443C-93E7-74F870EDAEFE" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-UnitDefinition-unitDefinitionNamespaceDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-44BE-9DB4-74F8D9C8F0FB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-unitDefinitionNamespaceDerivation"/>
          <body>If a unit definition has a declared namespace name, then the containing namespace for the unit is the referent for that name. </body>
        </ownedComment>
        <specification xmi:id="Alf-UnitDefinition-unitDefinitionNamespaceDerivation-specification" xmi:uuid="725A27D7-D3DC-41F2-9885-74F87D0C10AE" xmi:type="uml:OpaqueExpression"/>
        <name>unitDefinitionNamespaceDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionNamespace" xmi:uuid="725A27D7-D3DC-4297-9DDB-74F890A0E3E0" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-UnitDefinition-unitDefinitionNamespace-ownedComment" xmi:uuid="725A27D7-D3DC-4D23-9E96-74F8D064E3F8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-unitDefinitionNamespace"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-UnitDefinition-unitDefinitionNamespace-specification" xmi:uuid="725A27D7-D3DC-432B-91A4-74F812E69369" xmi:type="uml:OpaqueExpression"/>
        <name>unitDefinitionNamespace</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation" xmi:uuid="725A27D7-D3DC-4551-9F65-74F8837C3C8B" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F3C-9143-74F87C196156" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-UnitDefinition-unitDefinitionIsModelLibraryDerivation-specification" xmi:uuid="725A27D7-D3DC-484C-92D1-74F89A029C1C" xmi:type="uml:OpaqueExpression"/>
        <name>unitDefinitionIsModelLibraryDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionImplicitImports" xmi:uuid="725A27D7-D3DC-4BFA-95A9-74F81EA818E5" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-UnitDefinition-unitDefinitionImplicitImports-ownedComment" xmi:uuid="725A27D7-D3DC-420D-99E4-74F86629CF13" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-unitDefinitionImplicitImports"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-UnitDefinition-unitDefinitionImplicitImports-specification" xmi:uuid="725A27D7-D3DC-4CA1-9F2B-74F8D31E021D" xmi:type="uml:OpaqueExpression"/>
        <name>unitDefinitionImplicitImports</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation" xmi:uuid="725A27D7-D3DC-444A-9130-74F890B1D718" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4650-9E88-74F84924FC35" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-UnitDefinition-unitDefinitionAppliedProfileDerivation-specification" xmi:uuid="725A27D7-D3DC-46AF-91A4-74F8695999B0" xmi:type="uml:OpaqueExpression"/>
        <name>unitDefinitionAppliedProfileDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-UnitDefinition-generalization" xmi:uuid="725A27D7-D3DC-4F21-9C04-74F8654BEA94" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-DocumentedElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-UnitDefinition-namespaceName" xmi:uuid="725A27D7-D3DC-4703-9146-74F8B370DA7C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-UnitDefinition-namespaceName-ownedComment" xmi:uuid="725A27D7-D3DC-47D0-9F97-74F809DF92E0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-namespaceName"/>
          <body>A declaration of the name of the namespace that contains this unit as a subunit. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-UnitDefinition-namespaceName-lowerValue" xmi:uuid="725A27D7-D3DC-4FA6-9D9D-74F80D3517F6" xmi:type="uml:LiteralInteger"/>
        <name>namespaceName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_namespaceName_unitDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnitDefinition-definition" xmi:uuid="725A27D7-D3DC-488F-98FD-74F81E887614" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-UnitDefinition-definition-ownedComment" xmi:uuid="725A27D7-D3DC-4984-9D65-74F8B3C24064" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-definition"/>
          <body>The definition of the unit as a namespace. </body>
        </ownedComment>
        <name>definition</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-NamespaceDefinition"/>
        <association xmi:idref="Alf-A_definition_unit"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnitDefinition-import" xmi:uuid="725A27D7-D3DC-4FA3-9C2F-74F8842B89D6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-UnitDefinition-import-ownedComment" xmi:uuid="725A27D7-D3DC-43EE-9DC8-74F8E6306D7B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-import"/>
          <body>The set of references to imported elements or packages. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-UnitDefinition-import-lowerValue" xmi:uuid="725A27D7-D3DC-4A9E-9827-74F8B479498C" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-UnitDefinition-import-upperValue" xmi:uuid="725A27D7-D3DC-4E37-9958-74F85FB3F7BC" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>import</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-ImportReference"/>
        <association xmi:idref="Alf-A_import_unit"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnitDefinition-namespace" xmi:uuid="725A27D7-D3DC-44B4-93A5-74F87C389AB6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-UnitDefinition-namespace-ownedComment" xmi:uuid="725A27D7-D3DC-470C-9006-74F8DB8A9E2D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-namespace"/>
          <body>A reference to the namespace denoted by the declared namespace name for the unit, if any. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-UnitDefinition-namespace-lowerValue" xmi:uuid="725A27D7-D3DC-41C1-9F17-74F81DA5F592" xmi:type="uml:LiteralInteger"/>
        <name>namespace</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_namespace_unitDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnitDefinition-isModelLibrary" xmi:uuid="725A27D7-D3DC-4EA4-9028-74F87862E6A4" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-UnitDefinition-isModelLibrary-ownedComment" xmi:uuid="725A27D7-D3DC-4300-9F81-74F839A8FF7F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-isModelLibrary"/>
          <body>Whether this unit definition is for a model library or not. </body>
        </ownedComment>
        <name>isModelLibrary</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-UnitDefinition-appliedProfile" xmi:uuid="725A27D7-D3DC-4B06-9F15-74F83937B44B" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Profile"> </type>
        <ownedComment xmi:id="Alf-UnitDefinition-appliedProfile-ownedComment" xmi:uuid="725A27D7-D3DC-42E7-9D40-74F87DA5D4AB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-UnitDefinition-appliedProfile"/>
          <body>The profiles applied to this unit. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-UnitDefinition-appliedProfile-lowerValue" xmi:uuid="725A27D7-D3DC-4A4B-9EAC-74F8FACB9AC0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-UnitDefinition-appliedProfile-upperValue" xmi:uuid="725A27D7-D3DC-409D-969D-74F85A1CEC0B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>appliedProfile</name>
        <isDerived>true</isDerived>
        <association xmi:idref="Alf-A_appliedProfile_unitDefinition"/>
      </ownedAttribute>
      <name>UnitDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-AssociationDefinition" xmi:uuid="725A27D7-D3DC-4916-9D02-74F81E212F31" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-AssociationDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4263-9A67-74F8B54DC8D0" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-AssociationDefinition"/>
        <body>The definition of an association, whose members must all be properties. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-AssociationDefinition-associationDefinitionSpecializationReferent" xmi:uuid="725A27D7-D3DC-458D-9D0B-74F8AE8EEB10" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-AssociationDefinition-associationDefinitionSpecializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-422D-93EA-74F89130A3A5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssociationDefinition-associationDefinitionSpecializationReferent"/>
          <body>The specialization referents of an association definition must all be associations. </body>
        </ownedComment>
        <specification xmi:id="Alf-AssociationDefinition-associationDefinitionSpecializationReferent-specification" xmi:uuid="725A27D7-D3DC-4345-9E7A-74F8D5E81442" xmi:type="uml:OpaqueExpression"/>
        <name>associationDefinitionSpecializationReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-AssociationDefinition-generalization" xmi:uuid="725A27D7-D3DC-40FB-99CE-74F860D6391C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-AssociationDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-43BA-9476-74F8D5A1B17A" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-AssociationDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4AEE-98FF-74F8D2F685B5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssociationDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-AssociationDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-49A9-958F-74F8493D21B0" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-AssociationDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4479-9265-74F8ACF4725A" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-AssociationDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4E08-93BF-74F8ABB39E3B" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-AssociationDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-442C-97C4-74F8A0691266" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssociationDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-AssociationDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4B34-9BB4-74F867D8418B" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-AssociationDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4817-937F-74F82B78E6AB" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-AssociationDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-4BD6-9D43-74F84B76BEE0" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-AssociationDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-45D2-977B-74F89CA4DB15" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-AssociationDefinition-isSameKindAs"/>
          <body>Return true if the given member is either an AssociationDefinition or an imported member whose referent is an AssociationDefinition or an Association. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-AssociationDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-42AA-923B-74F8AC948816" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-AssociationDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4AAA-970E-74F8A926A9AE" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-AssociationDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-AssociationDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4B28-965B-74F8215EF1E7" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>AssociationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassDefinition" xmi:uuid="725A27D7-D3DC-4698-97E9-74F89387E04C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4E37-958F-74F846A80ED3" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassDefinition"/>
        <body>The definition of a class, whose members may be properties, operations, signals or signal receptions. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ClassDefinition-classDefinitionSpecializationReferent" xmi:uuid="725A27D7-D3DC-4EF1-9D9C-74F8FEA74839" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassDefinition-classDefinitionSpecializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-404D-921A-74F846FA2D0F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassDefinition-classDefinitionSpecializationReferent"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ClassDefinition-classDefinitionSpecializationReferent-specification" xmi:uuid="725A27D7-D3DC-45B9-9805-74F8E31E1EE9" xmi:type="uml:OpaqueExpression"/>
        <name>classDefinitionSpecializationReferent</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassDefinition-classDefinitionAbstractMember" xmi:uuid="725A27D7-D3DC-4D88-90C5-74F848A83E5E" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ClassDefinition"/>
        <ownedComment xmi:id="Alf-ClassDefinition-classDefinitionAbstractMember-ownedComment" xmi:uuid="725A27D7-D3DC-4B52-9CCD-74F809C449ED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassDefinition-classDefinitionAbstractMember"/>
          <body>If a class definition is not abstract, then no member operations (owned or inherited) of the class definition may be abstract. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassDefinition-classDefinitionAbstractMember-specification" xmi:uuid="725A27D7-D3DC-47A8-9B5B-74F8B7256270" xmi:type="uml:OpaqueExpression"/>
        <name>classDefinitionAbstractMember</name>
      </ownedRule>
      <generalization xmi:id="Alf-ClassDefinition-generalization" xmi:uuid="725A27D7-D3DC-4C69-9B6B-74F8404CBD92" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-ClassDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-462F-9B73-74F88E31BD36" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ClassDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4FEE-92CD-74F853B7BFC3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-412F-9E2B-74F82286E260" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-427A-9530-74F858760E05" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ClassDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4DE5-98D3-74F829C92452" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-ClassDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-45D2-945F-74F82AC68BBE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4543-91B8-74F898CE4D8A" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-478D-99CE-74F84BD5134B" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ClassDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-4ABC-9619-74F863953A7F" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-ClassDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-4CEA-9400-74F8305F6EAA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassDefinition-isSameKindAs"/>
          <body>Return true if the given member is either a ClassDefinition or an imported member whose referent is a ClassDefinition or a Class. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4EE8-976A-74F89625829F" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-ClassDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4FE1-95B8-74F8A39790A0" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-ClassDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-48A4-9E99-74F8CEE9A2F8" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>ClassDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-TypedElementDefinition" xmi:uuid="725A27D7-D3DC-4DE1-9DA6-74F8EE73062F" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-TypedElementDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-48FC-9551-74F8B33BCFB7" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-TypedElementDefinition"/>
        <body>The common properties of the definitions of typed elements. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation" xmi:uuid="725A27D7-D3DC-4595-9B52-74F868D39D13" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4074-9204-74F867602513" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-TypedElementDefinition-typedElementDefinitionLowerDerivation-specification" xmi:uuid="725A27D7-D3DC-4ACF-916F-74F8101FB179" xmi:type="uml:OpaqueExpression"/>
        <name>typedElementDefinitionLowerDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation" xmi:uuid="725A27D7-D3DC-47A5-9E45-74F829406242" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4971-953A-74F8D43B1AB4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation"/>
          <body>The unlimited natural upper bound value is the unlimited natural value of the uper bound string (with "*" representing the unbounded value). </body>
        </ownedComment>
        <specification xmi:id="Alf-TypedElementDefinition-typedElementDefinitionUpperDerivation-specification" xmi:uuid="725A27D7-D3DC-4178-97F9-74F813286F65" xmi:type="uml:OpaqueExpression"/>
        <name>typedElementDefinitionUpperDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation" xmi:uuid="725A27D7-D3DC-4B66-9326-74F84611B68D" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4A1F-9F9A-74F8F4626ED1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation"/>
          <body>The type of a typed element definition is the single classifier referent of the type name. </body>
        </ownedComment>
        <specification xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4CFC-9D31-74F88671EF0F" xmi:type="uml:OpaqueExpression"/>
        <name>typedElementDefinitionTypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeName" xmi:uuid="725A27D7-D3DC-4DEB-9B6B-74F88DA7AF2B" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeName-ownedComment" xmi:uuid="725A27D7-D3DC-48A4-9C14-74F86F7BB011" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-typedElementDefinitionTypeName"/>
          <body>The type name of a typed element definition must have a single classifier referent. This referent may not be a template. </body>
        </ownedComment>
        <specification xmi:id="Alf-TypedElementDefinition-typedElementDefinitionTypeName-specification" xmi:uuid="725A27D7-D3DC-41EE-9A3E-74F819CD590E" xmi:type="uml:OpaqueExpression"/>
        <name>typedElementDefinitionTypeName</name>
      </ownedRule>
      <generalization xmi:id="Alf-TypedElementDefinition-generalization" xmi:uuid="725A27D7-D3DC-4CA2-9E00-74F822FA5F70" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Member"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-lowerBound" xmi:uuid="725A27D7-D3DC-4A09-91B6-74F89D7F5850" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-lowerBound-ownedComment" xmi:uuid="725A27D7-D3DC-4D0C-9D76-74F80BCFFFEF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-lowerBound"/>
          <body>The string image of the literal given to specify the lower bound of the multiplicity of the element being defined. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-TypedElementDefinition-lowerBound-lowerValue" xmi:uuid="725A27D7-D3DC-4086-9738-74F8E9F34A13" xmi:type="uml:LiteralInteger"/>
        <name>lowerBound</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-upperBound" xmi:uuid="725A27D7-D3DC-4A9B-94D3-74F8D98A8035" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-upperBound-ownedComment" xmi:uuid="725A27D7-D3DC-4308-9F8A-74F8FF9F21DE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-upperBound"/>
          <body>The string image of the literal given to specify the upper bound of the multiplicity of the element being defined. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-TypedElementDefinition-upperBound-defaultValue" xmi:uuid="725A27D7-D3DC-4976-9A3F-74F8AB208204" xmi:type="uml:LiteralString">
          <value>"1"</value>
        </defaultValue>
        <name>upperBound</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-isOrdered" xmi:uuid="725A27D7-D3DC-48FC-93CB-74F8E3825034" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-isOrdered-ownedComment" xmi:uuid="725A27D7-D3DC-4547-9610-74F841B5B022" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-isOrdered"/>
          <body>Whether the element being defined is ordered. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-TypedElementDefinition-isOrdered-defaultValue" xmi:uuid="725A27D7-D3DC-4935-98CB-74F841DC87CC" xmi:type="uml:LiteralBoolean"/>
        <name>isOrdered</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-isNonunique" xmi:uuid="725A27D7-D3DC-4536-96C7-74F882C44E75" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-isNonunique-ownedComment" xmi:uuid="725A27D7-D3DC-41AD-91AC-74F809F6958C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-isNonunique"/>
          <body>Whether the element being defined is non-unique. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-TypedElementDefinition-isNonunique-defaultValue" xmi:uuid="725A27D7-D3DC-4D99-90FD-74F8CEA9C33A" xmi:type="uml:OpaqueExpression">
          <body>false</body>
        </defaultValue>
        <name>isNonunique</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-typeName" xmi:uuid="725A27D7-D3DC-4113-9CC6-74F864DD7349" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-TypedElementDefinition-typeName-ownedComment" xmi:uuid="725A27D7-D3DC-459B-9982-74F8B093BAED" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-typeName"/>
          <body>The name of the type of the element being defined. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-TypedElementDefinition-typeName-lowerValue" xmi:uuid="725A27D7-D3DC-4D33-9F61-74F869CC92AE" xmi:type="uml:LiteralInteger"/>
        <name>typeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_typeName_typedElementDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-type" xmi:uuid="725A27D7-D3DC-464A-9E11-74F8EDC398E7" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-TypedElementDefinition-type-lowerValue" xmi:uuid="725A27D7-D3DC-4BA6-9495-74F89DDE926E" xmi:type="uml:LiteralInteger"/>
        <name>type</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_type_typedElementDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-lower" xmi:uuid="725A27D7-D3DC-48B5-9427-74F817FD109D" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Integer"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-lower-ownedComment" xmi:uuid="725A27D7-D3DC-4F47-9EB6-74F8F886EFDA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-lower"/>
          <body>The multiplicity lower bound of the element being defined. </body>
        </ownedComment>
        <name>lower</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TypedElementDefinition-upper" xmi:uuid="725A27D7-D3DC-4A6C-9C31-74F8AEDB0100" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#UnlimitedNatural"> </type>
        <ownedComment xmi:id="Alf-TypedElementDefinition-upper-ownedComment" xmi:uuid="725A27D7-D3DC-431B-950E-74F8D66CAC5C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TypedElementDefinition-upper"/>
          <body>The multiplicity upper bound of the element being defined. </body>
        </ownedComment>
        <name>upper</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <name>TypedElementDefinition</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-DataTypeDefinition" xmi:uuid="725A27D7-D3DC-4823-9F1D-74F87E12D473" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-DataTypeDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4BA8-97F5-74F89524BF7C" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-DataTypeDefinition"/>
        <body>The definition of a data type, whose members must all be properties. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive" xmi:uuid="725A27D7-D3DC-4249-94BB-74F8363FD0F3" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive-ownedComment" xmi:uuid="725A27D7-D3DC-493A-924D-74F8D78B7B6B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive"/>
          <body>If a data type is primitive, then it may not have any owned members. </body>
        </ownedComment>
        <specification xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionPrimitive-specification" xmi:uuid="725A27D7-D3DC-4025-9725-74F8533E9FE1" xmi:type="uml:OpaqueExpression"/>
        <name>dataTypeDefinitionPrimitive</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent" xmi:uuid="725A27D7-D3DC-41E6-9B40-74F8D88D81A5" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-494A-9D0B-74F8A6B33B09" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent"/>
          <body>The specialization referents of a data type definition must all be data types. </body>
        </ownedComment>
        <specification xmi:id="Alf-DataTypeDefinition-dataTypeDefinitionSpecializationReferent-specification" xmi:uuid="725A27D7-D3DC-4CCF-9A54-74F82663A05A" xmi:type="uml:OpaqueExpression"/>
        <name>dataTypeDefinitionSpecializationReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-DataTypeDefinition-generalization" xmi:uuid="725A27D7-D3DC-43B6-9B35-74F86D6F5DD1" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-DataTypeDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4274-9FE3-74F88783944C" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-DataTypeDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4D6B-92B4-74F8AC5D809E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DataTypeDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4801-91D3-74F84F0DC57D" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-40F6-92A8-74F89C9841DF" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-DataTypeDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-424B-9224-74F8F19122D5" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-DataTypeDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4D53-9110-74F8E0116A6B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DataTypeDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4789-939E-74F85A9DE226" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4502-901F-74F86597FA4E" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-DataTypeDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-4F48-9780-74F88E7C681D" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-DataTypeDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-44BD-9E07-74F81858BD8B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-DataTypeDefinition-isSameKindAs"/>
          <body>Return true if the given member is either a DataTypeDefinition or an imported member whose referent is a DataTypeDefinition or a DataType. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-441D-9A24-74F884F71A60" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-DataTypeDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-42B8-9484-74F8F2C6C1DD" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-DataTypeDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-DataTypeDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4966-96F3-74F87AF65037" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>DataTypeDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-TaggedValue" xmi:uuid="725A27D7-D3DC-4CBC-97AB-74F81425DF2B" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-TaggedValue-ownedComment" xmi:uuid="725A27D7-D3DC-4BA0-99F0-74F828389773" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-TaggedValue"/>
        <body>An assignment of a value to an attribute of an applied stereotype. </body>
      </ownedComment>
      <generalization xmi:id="Alf-TaggedValue-generalization" xmi:uuid="725A27D7-D3DC-4D33-9467-74F83BAA35F0" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-TaggedValue-name" xmi:uuid="725A27D7-D3DC-4639-91A0-74F85918B562" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TaggedValue-name-ownedComment" xmi:uuid="725A27D7-D3DC-42AA-991B-74F8A2E61B8C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TaggedValue-name"/>
          <body>The name of the stereotype attribute to be assigned a value. </body>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TaggedValue-value" xmi:uuid="725A27D7-D3DC-4F70-98B5-74F82C011DCC" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TaggedValue-value-ownedComment" xmi:uuid="725A27D7-D3DC-4124-9731-74F8D292FF40" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TaggedValue-value"/>
          <body>The string image of a literal value to be assigned to the stereotype attribute. </body>
        </ownedComment>
        <name>value</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-TaggedValue-operator" xmi:uuid="725A27D7-D3DC-4087-97B2-74F8D285AD52" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-TaggedValue-operator-ownedComment" xmi:uuid="725A27D7-D3DC-4E3F-9FDC-74F8E034EDB9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TaggedValue-operator"/>
          <body>For a numeric value, an optional unary plus or minus operator. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-TaggedValue-operator-lowerValue" xmi:uuid="725A27D7-D3DC-4742-9375-74F87CEC30B3" xmi:type="uml:LiteralInteger"/>
        <name>operator</name>
      </ownedAttribute>
      <name>TaggedValue</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-PackageDefinition" xmi:uuid="725A27D7-D3DC-4CE4-91B3-74F8A732B996" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PackageDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-44D6-97EA-74F81A0215A8" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PackageDefinition"/>
        <body>The definition of a package, all of whose members must be packageable elements. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation" xmi:uuid="725A27D7-D3DC-4E6D-9893-74F8A613577A" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4D90-9CAC-74F83EF9B5EA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation"/>
          <body>The applied profiles of a package definition are the profiles listed in any @apply annotations on the package. </body>
        </ownedComment>
        <specification xmi:id="Alf-PackageDefinition-packageDefinitionAppliedProfileDerivation-specification" xmi:uuid="725A27D7-D3DC-4CA2-9465-74F86344E132" xmi:type="uml:OpaqueExpression"/>
        <name>packageDefinitionAppliedProfileDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-PackageDefinition-generalization" xmi:uuid="725A27D7-D3DC-4901-9192-74F89B8E514B" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-NamespaceDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-PackageDefinition-appliedProfile" xmi:uuid="725A27D7-D3DC-4741-959B-74F83BDD7676" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Profile"> </type>
        <ownedComment xmi:id="Alf-PackageDefinition-appliedProfile-ownedComment" xmi:uuid="725A27D7-D3DC-4342-95E8-74F84B8BD78A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageDefinition-appliedProfile"/>
          <body>The profiles applied (directly) to this package. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-PackageDefinition-appliedProfile-lowerValue" xmi:uuid="725A27D7-D3DC-4CBB-9434-74F8B2608647" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-PackageDefinition-appliedProfile-upperValue" xmi:uuid="725A27D7-D3DC-4A38-97DC-74F844FEF3D3" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>appliedProfile</name>
        <isDerived>true</isDerived>
        <association xmi:idref="Alf-A_appliedProfile_packageDefinition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-PackageDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4B19-989B-74F8E96030B3" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-PackageDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4E09-9B3A-74F83563171F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PackageDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4AD3-9D88-74F8ED21C6B9" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-PackageDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4009-9905-74F8BB14EE70" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-PackageDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-43DF-9084-74F87D6C5224" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
        <ownedComment xmi:id="Alf-PackageDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4862-9CB8-74F80802A3AE" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageDefinition-matchForStub"/>
          <body>Returns true of the namespace definition associated with the given unit definition is a package definition. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PackageDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4143-9937-74F812241AB5" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-PackageDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-454A-9578-74F80BFC1F38" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-PackageDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-46E3-9EEE-74F8E8D8119D" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-PackageDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-46ED-95BB-74F8CCF8E97A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageDefinition-isSameKindAs"/>
          <body>Return true if the given member is either a PackageDefinition or an imported member whose referent is a PackageDefinition or a Package. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PackageDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4053-9197-74F8A5E08E4A" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-PackageDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-450A-99CC-74F8A1E07577" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-PackageDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-PackageDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4025-948C-74F8B8F24D26" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>PackageDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ImportReference" xmi:uuid="725A27D7-D3DC-4C88-9796-74F84807AF7E" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ImportReference-ownedComment" xmi:uuid="725A27D7-D3DC-40A9-906F-74F89C7E6227" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ImportReference"/>
        <body>A reference to an element or package to be imported into a unit. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ImportReference-importReferenceReferentDerivation" xmi:uuid="725A27D7-D3DC-4547-9CD4-74F833BC9DDB" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ImportReference-importReferenceReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4F51-9C21-74F84D9BCE11" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-importReferenceReferentDerivation"/>
          <body>The referent of an import reference is the element denoted by the referent name. </body>
        </ownedComment>
        <specification xmi:id="Alf-ImportReference-importReferenceReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4E3C-9ED9-74F8596A30A9" xmi:type="uml:OpaqueExpression"/>
        <name>importReferenceReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ImportReference-importReferenceReferent" xmi:uuid="725A27D7-D3DC-4FAD-9713-74F82CC61940" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ImportReference-importReferenceReferent-ownedComment" xmi:uuid="725A27D7-D3DC-49D8-9E01-74F806B409E2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-importReferenceReferent"/>
          <body>The referent name of an import reference must resolve to a single element with public or empty visibility. </body>
        </ownedComment>
        <specification xmi:id="Alf-ImportReference-importReferenceReferent-specification" xmi:uuid="725A27D7-D3DC-4EB6-9A5D-74F8C2492ABF" xmi:type="uml:OpaqueExpression"/>
        <name>importReferenceReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-ImportReference-generalization" xmi:uuid="725A27D7-D3DC-4097-9387-74F800DC8E41" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ImportReference-visibility" xmi:uuid="725A27D7-D3DC-4BDD-9FF2-74F8FDED73F7" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-ImportReference-visibility-ownedComment" xmi:uuid="725A27D7-D3DC-448E-92D0-74F8F38F7144" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-visibility"/>
          <body>An indication of the visibility of the import. </body>
        </ownedComment>
        <name>visibility</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ImportReference-referentName" xmi:uuid="725A27D7-D3DC-4C7B-93D4-74F833DE53A6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ImportReference-referentName-ownedComment" xmi:uuid="725A27D7-D3DC-4E6C-963A-74F81DD27344" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-referentName"/>
          <body>The name of the element or package to be imported. </body>
        </ownedComment>
        <name>referentName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_referentName_importReference"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ImportReference-unit" xmi:uuid="725A27D7-D3DC-4F4C-9499-74F8228DC82D" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ImportReference-unit-ownedComment" xmi:uuid="725A27D7-D3DC-4DDC-943E-74F8B215EC4E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-unit"/>
          <body>The unit that is making this import reference. </body>
        </ownedComment>
        <name>unit</name>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_import_unit"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ImportReference-referent" xmi:uuid="725A27D7-D3DC-4F98-9725-74F801849162" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ImportReference-referent-ownedComment" xmi:uuid="725A27D7-D3DC-471F-9ED9-74F85B9C889C" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ImportReference-referent"/>
          <body>A reference to the imported element denoted by the given qualified name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ImportReference-referent-lowerValue" xmi:uuid="725A27D7-D3DC-4229-9C5D-74F889D7CD47" xmi:type="uml:LiteralInteger"/>
        <name>referent</name>
        <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-PropertyDefinition" xmi:uuid="725A27D7-D3DC-4F92-9AB0-74F8C74A065F" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PropertyDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4A23-9089-74F81A27EBDF" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PropertyDefinition"/>
        <body>A typed element definition for a property (attribute or association end). </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializer" xmi:uuid="725A27D7-D3DC-4501-98CE-74F81292B9F5" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializer-ownedComment" xmi:uuid="725A27D7-D3DC-4E98-9401-74F8E1967AA8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-propertyDefinitionInitializer"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-PropertyDefinition-propertyDefinitionInitializer-specification" xmi:uuid="725A27D7-D3DC-4399-9ED8-74F8E9EC121B" xmi:type="uml:OpaqueExpression"/>
        <name>propertyDefinitionInitializer</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation" xmi:uuid="725A27D7-D3DC-415B-95DB-74F855D12264" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4BAE-9435-74F86AEFFDF9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation"/>
          <body>A property definition requires collection conversion if its initializer has a collection class as its type and the property definition does not. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyDefinition-propertyDefinitionIsCollectionConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4ED5-95AF-74F834B62B3D" xmi:type="uml:OpaqueExpression"/>
        <name>propertyDefinitionIsCollectionConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation" xmi:uuid="725A27D7-D3DC-42D5-9E48-74F80578D333" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4B4A-9A28-74F81DD907D9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation"/>
          <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 argument type is Integer. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyDefinition-propertyDefinitionIsBitStringConversionDerivation-specification" xmi:uuid="725A27D7-D3DC-4DC4-90C9-74F8D1AC6882" xmi:type="uml:OpaqueExpression"/>
        <name>propertyDefinitionIsBitStringConversionDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-4F1D-9337-74F813A11A87" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-44CE-9B78-74F893ACFB34" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation"/>
          <body>A property definition is a feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-PropertyDefinition-propertyDefinitionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-4793-9794-74F83F4E5D87" xmi:type="uml:OpaqueExpression"/>
        <name>propertyDefinitionIsFeatureDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-PropertyDefinition-generalization" xmi:uuid="725A27D7-D3DC-413B-9FA0-74F85E9C3BD3" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-TypedElementDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-PropertyDefinition-isComposite" xmi:uuid="725A27D7-D3DC-4C2F-9467-74F876566692" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-PropertyDefinition-isComposite-ownedComment" xmi:uuid="725A27D7-D3DC-4BCF-9BAA-74F8712CC31E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-isComposite"/>
          <body>Whether the property being defined has composite aggregation. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-PropertyDefinition-isComposite-defaultValue" xmi:uuid="725A27D7-D3DC-4530-942D-74F88A8473A6" xmi:type="uml:LiteralBoolean"/>
        <name>isComposite</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-PropertyDefinition-initializer" xmi:uuid="725A27D7-D3DC-4FF5-923F-74F84253AD6E" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-PropertyDefinition-initializer-ownedComment" xmi:uuid="725A27D7-D3DC-4969-9D33-74F8D4A12572" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-initializer"/>
          <body>The expression to be evaluated to initialize the property. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-PropertyDefinition-initializer-lowerValue" xmi:uuid="725A27D7-D3DC-427C-9B51-74F8AFEC81DE" xmi:type="uml:LiteralInteger"/>
        <name>initializer</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Expression"/>
        <association xmi:idref="Alf-A_initializer_propertyDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-PropertyDefinition-isCollectionConversion" xmi:uuid="725A27D7-D3DC-4EB4-9819-74F8A5389A19" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-PropertyDefinition-isCollectionConversion-ownedComment" xmi:uuid="725A27D7-D3DC-44EB-9A4F-74F8A006AF5A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-isCollectionConversion"/>
          <body>Whether collection conversion is required for the initialization of this property. </body>
        </ownedComment>
        <name>isCollectionConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-PropertyDefinition-isBitStringConversion" xmi:uuid="725A27D7-D3DC-4CB5-95FD-74F8A887D0C0" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-PropertyDefinition-isBitStringConversion-ownedComment" xmi:uuid="725A27D7-D3DC-43F4-9513-74F82F2D2CA2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-isBitStringConversion"/>
          <body>Whether BitString conversion is required for the initialization of this property. </body>
        </ownedComment>
        <name>isBitStringConversion</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-PropertyDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-46B8-93BE-74F801D21DF6" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-PropertyDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4B75-95E0-74F8CAD0D648" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-annotationAllowed"/>
          <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Property. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PropertyDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-42E8-96F2-74F8555EB48D" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-PropertyDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-47A7-9A3D-74F82078411C" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-PropertyDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-42D9-97FE-74F83DA19FA0" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-PropertyDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-4C31-9FA9-74F8532B8AE7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PropertyDefinition-isSameKindAs"/>
          <body>Return true if the given member is either a PropertyDefinition or an imported member whose referent is a PropertyDefinition or a Property. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-PropertyDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-41E2-9DE6-74F8AC38DDB6" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-PropertyDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4271-96E1-74F8CF5B101D" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-PropertyDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-PropertyDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4027-90C6-74F82F8F22F8" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>PropertyDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SignalDefinition" xmi:uuid="725A27D7-D3DC-44E7-9D69-74F84A911AF4" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SignalDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4169-96A8-74F8345DF682" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SignalDefinition"/>
        <body>The definition of a signal, whose members must all be properties. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SignalDefinition-signalDefinitionSpecializationReferent" xmi:uuid="725A27D7-D3DC-4E13-912E-74F8717D27E1" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SignalDefinition-signalDefinitionSpecializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-4F52-9EAB-74F8AC2A9786" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SignalDefinition-signalDefinitionSpecializationReferent"/>
          <body>The specialization referents of a signal definition must all be signals.</body>
        </ownedComment>
        <specification xmi:id="Alf-SignalDefinition-signalDefinitionSpecializationReferent-specification" xmi:uuid="725A27D7-D3DC-436E-9C57-74F85F1573E7" xmi:type="uml:OpaqueExpression"/>
        <name>signalDefinitionSpecializationReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-SignalDefinition-generalization" xmi:uuid="725A27D7-D3DC-4B06-9501-74F8B55BDAC9" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-SignalDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-46DC-961A-74F87910985B" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-SignalDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-41FC-991A-74F8A7791850" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SignalDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SignalDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4CB9-98BA-74F8F4ABB750" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-SignalDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4B3A-914C-74F8D94B9319" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-SignalDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4E2B-91BE-74F823E988EC" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-SignalDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-42EC-9C23-74F8EE729DBF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SignalDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SignalDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-45CF-9DFB-74F80B1D12C4" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-SignalDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4025-9121-74F8E3429A22" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-SignalDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-488C-95B0-74F8E09021E4" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-SignalDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-45D9-9A39-74F8B5051F59" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SignalDefinition-isSameKindAs"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-SignalDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-495C-9DAC-74F803A0E199" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-SignalDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4DCF-94C2-74F8B8916226" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-SignalDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-SignalDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-44D2-9C6B-74F82B242528" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>SignalDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassifierDefinition" xmi:uuid="725A27D7-D3DC-4F90-9802-74F800D66EA8" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassifierDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-438E-9114-74F88E32BEF3" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassifierDefinition"/>
        <body>The definition of a classifier. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecialization" xmi:uuid="725A27D7-D3DC-4864-997E-74F84AD1D216" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecialization-ownedComment" xmi:uuid="725A27D7-D3DC-4868-9F90-74F851231F1B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-classifierDefinitionSpecialization"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecialization-specification" xmi:uuid="725A27D7-D3DC-487B-944A-74F844BDF692" xmi:type="uml:OpaqueExpression"/>
        <name>classifierDefinitionSpecialization</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation" xmi:uuid="725A27D7-D3DC-4236-96B8-74F859202BB5" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-453E-9EC1-74F8DCA6918B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation"/>
          <body>The specialization referents of a classifier definition are the classifiers denoted by the names in the specialization list for the classifier definition. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifierDefinition-classifierDefinitionSpecializationReferentDerivation-specification" xmi:uuid="725A27D7-D3DC-4998-96A6-74F869D0B987" xmi:type="uml:OpaqueExpression"/>
        <name>classifierDefinitionSpecializationReferentDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers" xmi:uuid="725A27D7-D3DC-46B7-9636-74F88D761E18" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers-ownedComment" xmi:uuid="725A27D7-D3DC-484B-9EB9-74F8D14952B6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers"/>
          <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. </body>
        </ownedComment>
        <specification xmi:id="Alf-ClassifierDefinition-classifierDefinitionInheritedMembers-specification" xmi:uuid="725A27D7-D3DC-4578-9FAC-74F8BA87AFE2" xmi:type="uml:OpaqueExpression"/>
        <name>classifierDefinitionInheritedMembers</name>
      </ownedRule>
      <generalization xmi:id="Alf-ClassifierDefinition-generalization" xmi:uuid="725A27D7-D3DC-4EFA-99AF-74F813914A00" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-NamespaceDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ClassifierDefinition-isAbstract" xmi:uuid="725A27D7-D3DC-4FF2-969F-74F87377E603" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-ClassifierDefinition-isAbstract-ownedComment" xmi:uuid="725A27D7-D3DC-4472-9444-74F85E3AAEBB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-isAbstract"/>
          <body>Whether the classifier is abstract or not. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-ClassifierDefinition-isAbstract-defaultValue" xmi:uuid="725A27D7-D3DC-4738-994A-74F8A16B3961" xmi:type="uml:LiteralBoolean"/>
        <name>isAbstract</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifierDefinition-specialization" xmi:uuid="725A27D7-D3DC-429D-93E9-74F86BF6DEF6" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifierDefinition-specialization-ownedComment" xmi:uuid="725A27D7-D3DC-4BC0-9204-74F82DC43E8A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-specialization"/>
          <body>The names of classifiers specialized by the classifier being defined. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifierDefinition-specialization-lowerValue" xmi:uuid="725A27D7-D3DC-4686-98A1-74F8EE77743C" xmi:type="uml:LiteralInteger"/>
        <name>specialization</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_specialization_classifierDefinition"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ClassifierDefinition-specializationReferent" xmi:uuid="725A27D7-D3DC-46F2-9CEF-74F8EA530B2C" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ClassifierDefinition-specializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-4C5A-94CC-74F8E4A115FB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-specializationReferent"/>
          <body>References to the classifiers to which the names in the specialization list resolve. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ClassifierDefinition-specializationReferent-lowerValue" xmi:uuid="725A27D7-D3DC-4DC3-9333-74F8E77A6945" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-ClassifierDefinition-specializationReferent-upperValue" xmi:uuid="725A27D7-D3DC-4305-94A1-74F8BB3E91F6" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>specializationReferent</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_specializationReferent_classifierDefinition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ClassifierDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4CA8-9664-74F85D8F5541" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-matchForStub"/>
        <ownedComment xmi:id="Alf-ClassifierDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4D97-9531-74F8D51F869E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassifierDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4CDF-981D-74F8997D460B" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassifierDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4E52-9DF9-74F8B0212462" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <name>ClassifierDefinition</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-ActiveClassDefinition" xmi:uuid="725A27D7-D3DC-4992-98FE-74F8E6644749" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ActiveClassDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4DBA-946A-74F8C6E145F2" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ActiveClassDefinition"/>
        <body>The definition of an active class. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior" xmi:uuid="725A27D7-D3DC-480C-9038-74F87CB37180" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ActiveClassDefinition"/>
        <ownedComment xmi:id="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior-ownedComment" xmi:uuid="725A27D7-D3DC-404D-98AA-74F87CC9CEE3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior"/>
          <body>If an active class definition is not abstract, then it must have a classifier behavior. </body>
        </ownedComment>
        <specification xmi:id="Alf-ActiveClassDefinition-activeClassDefinitionClassifierBehavior-specification" xmi:uuid="725A27D7-D3DC-4069-98B2-74F842F606F3" xmi:type="uml:OpaqueExpression"/>
        <name>activeClassDefinitionClassifierBehavior</name>
      </ownedRule>
      <generalization xmi:id="Alf-ActiveClassDefinition-generalization" xmi:uuid="725A27D7-D3DC-4076-9A29-74F85660C681" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ActiveClassDefinition-classifierBehavior" xmi:uuid="725A27D7-D3DC-4139-98E7-74F88E93B288" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ActiveClassDefinition-classifierBehavior-ownedComment" xmi:uuid="725A27D7-D3DC-4865-9F2B-74F8DA523B3F" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActiveClassDefinition-classifierBehavior"/>
          <body>The definition of an activity (which may be a stub) to act as the classifier behavior of the active class. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ActiveClassDefinition-classifierBehavior-lowerValue" xmi:uuid="725A27D7-D3DC-4333-9125-74F814C8E4F0" xmi:type="uml:LiteralInteger"/>
        <name>classifierBehavior</name>
        <type xmi:idref="Alf-ActivityDefinition"/>
        <association xmi:idref="Alf-A_classifierBehavior_activeClassDefinition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ActiveClassDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4E5B-9456-74F82DF1C6CD" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-ActiveClassDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4F89-91D2-74F82AB485A9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActiveClassDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ActiveClassDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-43DD-91F4-74F882DD0958" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ActiveClassDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-430D-99AE-74F86FD9965E" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <name>ActiveClassDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ActivityDefinition" xmi:uuid="725A27D7-D3DC-4518-9819-74F8434B7C31" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ActivityDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4EDE-9BD0-74F8AD6C72C5" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ActivityDefinition"/>
        <body>The definition of an activity, with any formal parameters defined as owned members. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionSpecialization" xmi:uuid="725A27D7-D3DC-4D88-917F-74F86329DFC1" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ActivityDefinition-activityDefinitionSpecialization-ownedComment" xmi:uuid="725A27D7-D3DC-49B2-960C-74F8DEF38C89" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActivityDefinition-activityDefinitionSpecialization"/>
          <body>An activity definition may not have a specialization list. </body>
        </ownedComment>
        <specification xmi:id="Alf-ActivityDefinition-activityDefinitionSpecialization-specification" xmi:uuid="725A27D7-D3DC-4454-9245-74F807A35BC1" xmi:type="uml:OpaqueExpression"/>
        <name>activityDefinitionSpecialization</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ActivityDefinition-activityDefinitionPrimitive" xmi:uuid="725A27D7-D3DC-4641-97CF-74F859663F43" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ActivityDefinition-activityDefinitionPrimitive-ownedComment" xmi:uuid="725A27D7-D3DC-436F-9B54-74F8B43587C5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActivityDefinition-activityDefinitionPrimitive"/>
          <body>If an activity definition is primitive, then it must have a body that is empty. </body>
        </ownedComment>
        <specification xmi:id="Alf-ActivityDefinition-activityDefinitionPrimitive-specification" xmi:uuid="725A27D7-D3DC-4F73-9532-74F8ACE95CB3" xmi:type="uml:OpaqueExpression"/>
        <name>activityDefinitionPrimitive</name>
      </ownedRule>
      <generalization xmi:id="Alf-ActivityDefinition-generalization" xmi:uuid="725A27D7-D3DC-4536-9A1A-74F8DB925AD7" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ActivityDefinition-body" xmi:uuid="725A27D7-D3DC-4A93-9AE6-74F89FD9C8AA" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ActivityDefinition-body-ownedComment" xmi:uuid="725A27D7-D3DC-4DD2-908E-74F836E7E813" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActivityDefinition-body"/>
          <body>The sequence of statements that defines the behavior of the activity (empty for a stub). </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ActivityDefinition-body-lowerValue" xmi:uuid="725A27D7-D3DC-4C5B-9C7F-74F88C9FC563" xmi:type="uml:LiteralInteger"/>
        <name>body</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-Block"/>
        <association xmi:idref="Alf-A_body_activityDefnition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ActivityDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4EB6-96C6-74F8559E3923" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ActivityDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-460E-918A-74F837FFCD51" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActivityDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ActivityDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4EED-9F27-74F8D7683663" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ActivityDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4D92-9DAB-74F8D6741F51" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ActivityDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4F69-9B0D-74F81D9FF269" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-ActivityDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4277-9FAB-74F8DA9720FB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ActivityDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ActivityDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-4087-9695-74F893E09DDF" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ActivityDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4862-9110-74F8073E4A41" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <name>ActivityDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-TaggedValueList" xmi:uuid="725A27D7-D3DC-4C95-917C-74F861DF52C6" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-TaggedValueList-ownedComment" xmi:uuid="725A27D7-D3DC-48D7-92E7-74F822A20983" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-TaggedValueList"/>
        <body>A set of tagged values for a stereotype application. </body>
      </ownedComment>
      <generalization xmi:id="Alf-TaggedValueList-generalization" xmi:uuid="725A27D7-D3DC-4E03-9C9E-74F8F26CBD5F" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-TaggedValueList-taggedValue" xmi:uuid="725A27D7-D3DC-4A93-9263-74F83D2D1117" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-TaggedValueList-taggedValue-ownedComment" xmi:uuid="725A27D7-D3DC-41E1-9779-74F8F0F284E3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-TaggedValueList-taggedValue"/>
          <body>The tagged values in the set. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-TaggedValueList-taggedValue-lowerValue" xmi:uuid="725A27D7-D3DC-4432-9625-74F8E38A335B" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-TaggedValueList-taggedValue-upperValue" xmi:uuid="725A27D7-D3DC-4C50-9EFB-74F850C73A63" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>taggedValue</name>
        <type xmi:idref="Alf-TaggedValue"/>
        <association xmi:idref="Alf-A_taggedValue_taggedValueList"/>
      </ownedAttribute>
      <name>TaggedValueList</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-StereotypeAnnotation" xmi:uuid="725A27D7-D3DC-44B6-91DC-74F8CF69ED2C" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-StereotypeAnnotation-ownedComment" xmi:uuid="725A27D7-D3DC-4655-935F-74F8C1D2A83E" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-StereotypeAnnotation"/>
        <body>An annotation of a member definition indicating the application of a stereotype (or one of a small number of special-case annotations). </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation" xmi:uuid="725A27D7-D3DC-4897-9E20-74F807AB7CF0" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4942-9CA5-74F86C7293DF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeDerivation-specification" xmi:uuid="725A27D7-D3DC-4FDE-99F6-74F895EAF2E7" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationStereotypeDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName" xmi:uuid="725A27D7-D3DC-4E61-96B5-74F817D445C6" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName-ownedComment" xmi:uuid="725A27D7-D3DC-429C-92B5-74F80B4957D1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationStereotypeName-specification" xmi:uuid="725A27D7-D3DC-4939-9DB7-74F859388B80" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationStereotypeName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationApply" xmi:uuid="725A27D7-D3DC-42AB-9A05-74F8D0E825E0" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationApply-ownedComment" xmi:uuid="725A27D7-D3DC-49A1-94B9-74F8CEF3E241" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationApply"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationApply-specification" xmi:uuid="725A27D7-D3DC-48C5-94FB-74F82E2195DC" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationApply</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive" xmi:uuid="725A27D7-D3DC-40F1-97A8-74F8EA9358C3" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive-ownedComment" xmi:uuid="725A27D7-D3DC-4BAE-9D20-74F88CFFF836" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive"/>
          <body>If the stereotype name of a stereotype annotation is "primitive", then it may not have tagged values or names. </body>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationPrimitive-specification" xmi:uuid="725A27D7-D3DC-468D-9B7A-74F8DC461487" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationPrimitive</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationExternal" xmi:uuid="725A27D7-D3DC-4277-9823-74F8DACC8D02" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationExternal-ownedComment" xmi:uuid="725A27D7-D3DC-4FAC-96B2-74F86FA1C6E5" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationExternal"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationExternal-specification" xmi:uuid="725A27D7-D3DC-457D-91BC-74F87FEE3D96" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationExternal</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues" xmi:uuid="725A27D7-D3DC-4F04-9DD9-74F887FFA5A4" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues-ownedComment" xmi:uuid="725A27D7-D3DC-4106-970C-74F866B53D44" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationTaggedValues-specification" xmi:uuid="725A27D7-D3DC-4E3F-95FE-74F897D1052C" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationTaggedValues</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationNames" xmi:uuid="725A27D7-D3DC-41E8-940A-74F8F7D06D65" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationNames-ownedComment" xmi:uuid="725A27D7-D3DC-47C9-965C-74F84B304F82" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeAnnotationNames"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-StereotypeAnnotation-stereotypeAnnotationNames-specification" xmi:uuid="725A27D7-D3DC-4CB3-9500-74F8E4A1E3BF" xmi:type="uml:OpaqueExpression"/>
        <name>stereotypeAnnotationNames</name>
      </ownedRule>
      <generalization xmi:id="Alf-StereotypeAnnotation-generalization" xmi:uuid="725A27D7-D3DC-4C4D-9AE4-74F8A1FB1601" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SyntaxElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-StereotypeAnnotation-taggedValues" xmi:uuid="725A27D7-D3DC-4BD8-9C75-74F8D42015E9" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-taggedValues-ownedComment" xmi:uuid="725A27D7-D3DC-4FF8-9FE8-74F8698A8F0A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-taggedValues"/>
          <body>A set of tagged values for the applied stereotype. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-StereotypeAnnotation-taggedValues-lowerValue" xmi:uuid="725A27D7-D3DC-482D-9E73-74F8D5721343" xmi:type="uml:LiteralInteger"/>
        <name>taggedValues</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-TaggedValueList"/>
        <association xmi:idref="Alf-A_taggedValues_stereotypeAnnotation"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-StereotypeAnnotation-names" xmi:uuid="725A27D7-D3DC-4694-9E19-74F8E02144D8" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-names-ownedComment" xmi:uuid="725A27D7-D3DC-4137-943D-74F8AFD772FF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-names"/>
          <body>A set of references to model elements required for the stereotype being applied. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-StereotypeAnnotation-names-lowerValue" xmi:uuid="725A27D7-D3DC-45C0-9550-74F8FF223D94" xmi:type="uml:LiteralInteger"/>
        <name>names</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedNameList"/>
        <association xmi:idref="Alf-A_names_stereotypeAnnotation"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-StereotypeAnnotation-stereotypeName" xmi:uuid="725A27D7-D3DC-4B95-9BCD-74F8B27B3DD1" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotypeName-ownedComment" xmi:uuid="725A27D7-D3DC-488B-9680-74F842400F3B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotypeName"/>
          <body>The name of the stereotype being applied. </body>
        </ownedComment>
        <name>stereotypeName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_stereotypeName_stereotypeAnnotation"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-StereotypeAnnotation-stereotype" xmi:uuid="725A27D7-D3DC-450C-9138-74F812185C92" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/UML.xmi#Stereotype"> </type>
        <ownedComment xmi:id="Alf-StereotypeAnnotation-stereotype-ownedComment" xmi:uuid="725A27D7-D3DC-4540-9727-74F80C1F5541" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-StereotypeAnnotation-stereotype"/>
          <body>The stereotype denoted by the stereotype name. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-StereotypeAnnotation-stereotype-lowerValue" xmi:uuid="725A27D7-D3DC-4A7A-90D2-74F823EA9C1C" xmi:type="uml:LiteralInteger"/>
        <name>stereotype</name>
        <isDerived>true</isDerived>
        <association xmi:idref="Alf-A_stereotype_stereotypeAnnotation"/>
      </ownedAttribute>
      <name>StereotypeAnnotation</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ElementImportReference" xmi:uuid="725A27D7-D3DC-4EE2-9B02-74F823C44095" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ElementImportReference-ownedComment" xmi:uuid="725A27D7-D3DC-4308-98AC-74F87CA1736F" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ElementImportReference"/>
        <body>An import reference to a single element to be imported into a unit. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ElementImportReference-elementImportReferenceReferent" xmi:uuid="725A27D7-D3DC-44E9-9613-74F84C27B183" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-ElementImportReference"/>
        <ownedComment xmi:id="Alf-ElementImportReference-elementImportReferenceReferent-ownedComment" xmi:uuid="725A27D7-D3DC-4F6F-976D-74F82941052A" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ElementImportReference-elementImportReferenceReferent"/>
          <body>The referent of an element import reference must be a packageable element. </body>
        </ownedComment>
        <specification xmi:id="Alf-ElementImportReference-elementImportReferenceReferent-specification" xmi:uuid="725A27D7-D3DC-4803-95CC-74F8C78228ED" xmi:type="uml:OpaqueExpression"/>
        <name>elementImportReferenceReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-ElementImportReference-generalization" xmi:uuid="725A27D7-D3DC-44C6-9E0D-74F8C7131CFD" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ImportReference"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ElementImportReference-alias" xmi:uuid="725A27D7-D3DC-4CFD-9F23-74F83C9F1747" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-ElementImportReference-alias-ownedComment" xmi:uuid="725A27D7-D3DC-4C17-9D1F-74F8B89F0A3B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ElementImportReference-alias"/>
          <body>The alias to be used as the name for the imported element in the importing unit’s namespace. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-ElementImportReference-alias-lowerValue" xmi:uuid="725A27D7-D3DC-4191-98A9-74F864E1EB3E" xmi:type="uml:LiteralInteger"/>
        <name>alias</name>
      </ownedAttribute>
      <name>ElementImportReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-SignalReceptionDefinition" xmi:uuid="725A27D7-D3DC-4C5A-9A5D-74F8D7DC8E83" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-SignalReceptionDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-45DC-9CAB-74F8ED6D7600" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-SignalReceptionDefinition"/>
        <body>The definition of both a signal and a reception of that signal as a feature of the containing active class. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-4F91-9F42-74F8FF201424" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-45E5-970F-74F80C692CEB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation"/>
          <body>A signal reception definition is a feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-SignalReceptionDefinition-signalReceptionDefinitionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-47E9-954D-74F87D357C95" xmi:type="uml:OpaqueExpression"/>
        <name>signalReceptionDefinitionIsFeatureDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-SignalReceptionDefinition-generalization" xmi:uuid="725A27D7-D3DC-42F2-9DAF-74F824C97506" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-SignalDefinition"/>
      </generalization>
      <name>SignalReceptionDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-EnumerationDefinition" xmi:uuid="725A27D7-D3DC-447D-9124-74F8BD149BEF" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-EnumerationDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-47C0-9F7E-74F8BCED6700" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-EnumerationDefinition"/>
        <body>The definition of an enumeration, whose members must all be enumeration literal names. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent" xmi:uuid="725A27D7-D3DC-4BCE-9769-74F89F323BB1" xmi:type="uml:Constraint">
        <constrainedElement xmi:idref="Alf-EnumerationDefinition"/>
        <ownedComment xmi:id="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent-ownedComment" xmi:uuid="725A27D7-D3DC-4481-9AB2-74F8C3F5F5F6" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-EnumerationDefinition-enumerationDefinitionSpecializationReferent-specification" xmi:uuid="725A27D7-D3DC-47FD-961E-74F84FA1A215" xmi:type="uml:OpaqueExpression"/>
        <name>enumerationDefinitionSpecializationReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-EnumerationDefinition-generalization" xmi:uuid="725A27D7-D3DC-4F7F-9591-74F879E1919C" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-EnumerationDefinition-matchForStub" xmi:uuid="725A27D7-D3DC-4A55-9DAB-74F80BB89069" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-EnumerationDefinition-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4C96-90AF-74F86CCFF62B" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EnumerationDefinition-matchForStub"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-matchForStub-unit" xmi:uuid="725A27D7-D3DC-451E-9AAC-74F832D6C12C" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-48AD-97B1-74F820A85741" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-EnumerationDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-485D-9DB6-74F8F02E0690" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-EnumerationDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4754-9E0A-74F81A637FA2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EnumerationDefinition-annotationAllowed"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-46CA-9A17-74F876C14A47" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4EF7-9862-74F8A6663644" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-EnumerationDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-4E1A-9D7E-74F8B4D5882B" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-EnumerationDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-4D22-9C89-74F83CDA2FC8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-EnumerationDefinition-isSameKindAs"/>
          <body>Return true if the given member is either an EnumerationDefinition or an imported member whose referent is an EnumerationDefinition or an Enumeration. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-49DF-93AD-74F84162A206" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-EnumerationDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4FBD-9F7F-74F88438DCEA" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-EnumerationDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-EnumerationDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-43A9-9574-74F81F66C488" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>EnumerationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-PackageImportReference" xmi:uuid="725A27D7-D3DC-4981-9C46-74F8682E9BC5" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-PackageImportReference-ownedComment" xmi:uuid="725A27D7-D3DC-4B02-9957-74F80BF49DD1" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-PackageImportReference"/>
        <body>An import reference to a package all of whose public members are to be imported. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-PackageImportReference-packageImportReferenceReferent" xmi:uuid="725A27D7-D3DC-4FE5-993C-74F8996F448B" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-PackageImportReference-packageImportReferenceReferent-ownedComment" xmi:uuid="725A27D7-D3DC-453C-9C3F-74F8D293D76E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-PackageImportReference-packageImportReferenceReferent"/>
          <body>The referent of a package import must be a package. </body>
        </ownedComment>
        <specification xmi:id="Alf-PackageImportReference-packageImportReferenceReferent-specification" xmi:uuid="725A27D7-D3DC-4508-9EE4-74F81859B161" xmi:type="uml:OpaqueExpression"/>
        <name>packageImportReferenceReferent</name>
      </ownedRule>
      <generalization xmi:id="Alf-PackageImportReference-generalization" xmi:uuid="725A27D7-D3DC-4D70-9056-74F87915278D" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ImportReference"/>
      </generalization>
      <name>PackageImportReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-ClassifierTemplateParameter" xmi:uuid="725A27D7-D3DC-45CD-903F-74F842BF5519" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ClassifierTemplateParameter-ownedComment" xmi:uuid="725A27D7-D3DC-4CB4-9F0A-74F82C9C9847" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter"/>
        <body>The definition of a classifier template parameter, which acts as a classifier within the definition of the template. </body>
      </ownedComment>
      <generalization xmi:id="Alf-ClassifierTemplateParameter-generalization" xmi:uuid="725A27D7-D3DC-43E6-9B2C-74F89498B2BC" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-ClassifierDefinition"/>
      </generalization>
      <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed" xmi:uuid="725A27D7-D3DC-452D-92E0-74F84F742193" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-NamespaceDefinition-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-41F5-950F-74F80719011D" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-annotationAllowed"/>
          <body>Annotations are not allowed on classifier template parameters. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4B67-9DE4-74F82ED0154C" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-47E0-9F7B-74F810DB022A" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-matchForStub" xmi:uuid="725A27D7-D3DC-48D2-9154-74F82FD3E02C" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-ClassifierDefinition-matchForStub"/>
        <ownedComment xmi:id="Alf-ClassifierTemplateParameter-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4BC9-9E6C-74F8FBD7EE84" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-matchForStub"/>
          <body>Returns false. (Classifier template parameters cannot be stubs.) </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-matchForStub-unit" xmi:uuid="725A27D7-D3DC-47A5-9265-74F8EC298B31" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-49F7-9FCB-74F86AE6D7A6" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs" xmi:uuid="725A27D7-D3DC-489B-9EBA-74F85F2C86C4" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-44C2-9A27-74F86C176928" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-isSameKindAs"/>
          <body>Return true if the given member is a classifier template parameter. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4D34-9957-74F8EF4F6C08" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-40FD-92D9-74F8EE7716AF" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-ClassifierTemplateParameter-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ClassifierTemplateParameter-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4F31-99C1-74F85FCC9525" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>ClassifierTemplateParameter</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-FormalParameter" xmi:uuid="725A27D7-D3DC-4272-9917-74F84A74AB7B" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-FormalParameter-ownedComment" xmi:uuid="725A27D7-D3DC-434C-9BEB-74F8E18569D3" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-FormalParameter"/>
        <body>A typed element definition for the formal parameter of an activity or operation. </body>
      </ownedComment>
      <generalization xmi:id="Alf-FormalParameter-generalization" xmi:uuid="725A27D7-D3DC-4569-90B9-74F844D2CB1A" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-TypedElementDefinition"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-FormalParameter-direction" xmi:uuid="725A27D7-D3DC-40A1-9B49-74F8AB885078" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-FormalParameter-direction-ownedComment" xmi:uuid="725A27D7-D3DC-4B9D-9D64-74F80494C087" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FormalParameter-direction"/>
          <body>An indication of the direction of the parameter being defined. </body>
        </ownedComment>
        <name>direction</name>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-FormalParameter-annotationAllowed" xmi:uuid="725A27D7-D3DC-4B8D-9F45-74F8BDD4F0DE" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-FormalParameter-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-46D5-9B59-74F8866BD5B1" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FormalParameter-annotationAllowed"/>
          <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Parameter. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-FormalParameter-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4D67-93EC-74F837281534" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-FormalParameter-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4714-9C39-74F8D0AB6F5B" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-FormalParameter-isSameKindAs" xmi:uuid="725A27D7-D3DC-45A1-9AB0-74F8F12955C6" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-FormalParameter-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-4CFE-98AB-74F8EFA7A4E4" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-FormalParameter-isSameKindAs"/>
          <body>Return true if the given member is a FormalParameter. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-FormalParameter-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4542-9CF8-74F871C4F9AE" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-FormalParameter-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4693-99D1-74F89110572A" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-FormalParameter-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-FormalParameter-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4305-98F1-74F8A15BD02D" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>FormalParameter</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-Member" xmi:uuid="725A27D7-D3DC-490E-9F32-74F8A50F118E" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-Member-ownedComment" xmi:uuid="725A27D7-D3DC-436B-9F0F-74F8BE43BDB9" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-Member"/>
        <body>A model of the common properties of the definition of a member of a namespace in Alf. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-Member-memberAnnotations" xmi:uuid="725A27D7-D3DC-4D3C-98D5-74F81523408D" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberAnnotations-ownedComment" xmi:uuid="725A27D7-D3DC-40E2-9255-74F8345AF3F9" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberAnnotations"/>
          <body>All stereotype annotations for a member must be allowed, as determined using the stereotypeAllowed operation. </body>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberAnnotations-specification" xmi:uuid="725A27D7-D3DC-4954-956B-74F8DD98E24C" xmi:type="uml:OpaqueExpression"/>
        <name>memberAnnotations</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberIsPrimitiveDerivation" xmi:uuid="725A27D7-D3DC-49E1-9888-74F80BAA1467" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberIsPrimitiveDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4252-985A-74F8D784A757" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberIsPrimitiveDerivation"/>
          <body>A member is primitive if it has a @primitive annotation. </body>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberIsPrimitiveDerivation-specification" xmi:uuid="725A27D7-D3DC-42DD-9065-74F839CBA975" xmi:type="uml:OpaqueExpression"/>
        <name>memberIsPrimitiveDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberIsExternalDerivation" xmi:uuid="725A27D7-D3DC-4C8A-94E2-74F8BABAFB92" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberIsExternalDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4791-9B13-74F8DC51D201" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberIsExternalDerivation"/>
          <body>A member is external if it has an @external derivation. </body>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberIsExternalDerivation-specification" xmi:uuid="725A27D7-D3DC-4326-979B-74F83CF316D9" xmi:type="uml:OpaqueExpression"/>
        <name>memberIsExternalDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberExternal" xmi:uuid="725A27D7-D3DC-4A65-90B2-74F8F4D25C25" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberExternal-ownedComment" xmi:uuid="725A27D7-D3DC-4D3E-961F-74F872D0EBD0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberExternal"/>
          <body>If a member is external then it must be a stub. </body>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberExternal-specification" xmi:uuid="725A27D7-D3DC-480D-94FC-74F80FF3BBBC" xmi:type="uml:OpaqueExpression"/>
        <name>memberExternal</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberStub" xmi:uuid="725A27D7-D3DC-478B-97BC-74F8F226D6A2" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberStub-ownedComment" xmi:uuid="725A27D7-D3DC-4642-9EB2-74F8F101CBFB" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberStub"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberStub-specification" xmi:uuid="725A27D7-D3DC-4D22-981B-74F8E9539CBA" xmi:type="uml:OpaqueExpression"/>
        <name>memberStub</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberSubunitDerivation" xmi:uuid="725A27D7-D3DC-4601-9EF5-74F8EC1D82AB" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberSubunitDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-48D6-9CA8-74F8C144F095" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberSubunitDerivation"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberSubunitDerivation-specification" xmi:uuid="725A27D7-D3DC-4C00-96EC-74F843386FE7" xmi:type="uml:OpaqueExpression"/>
        <name>memberSubunitDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberStubStereotypes" xmi:uuid="725A27D7-D3DC-46B1-9654-74F8034B36A7" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberStubStereotypes-ownedComment" xmi:uuid="725A27D7-D3DC-4381-98B4-74F81E71F206" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberStubStereotypes"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberStubStereotypes-specification" xmi:uuid="725A27D7-D3DC-4E4B-934F-74F83268B114" xmi:type="uml:OpaqueExpression"/>
        <name>memberStubStereotypes</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-Member-memberPrimitive" xmi:uuid="725A27D7-D3DC-4FEE-977C-74F8478A9073" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-Member-memberPrimitive-ownedComment" xmi:uuid="725A27D7-D3DC-4438-9C8C-74F8EC7D9CB2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-memberPrimitive"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-Member-memberPrimitive-specification" xmi:uuid="725A27D7-D3DC-41E8-9A35-74F89EE39CD2" xmi:type="uml:OpaqueExpression"/>
        <name>memberPrimitive</name>
      </ownedRule>
      <generalization xmi:id="Alf-Member-generalization" xmi:uuid="725A27D7-D3DC-40B2-9551-74F8DB88D87D" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-DocumentedElement"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-Member-name" xmi:uuid="725A27D7-D3DC-4B39-9443-74F844CFE609" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-Member-name-ownedComment" xmi:uuid="725A27D7-D3DC-424C-9AF1-74F862845EA0" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-name"/>
          <body>The name of the member. </body>
        </ownedComment>
        <name>name</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-visibility" xmi:uuid="725A27D7-D3DC-46B9-91CC-74F8595E9C55" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#String"> </type>
        <ownedComment xmi:id="Alf-Member-visibility-ownedComment" xmi:uuid="725A27D7-D3DC-4449-97B6-74F8C84EE0DD" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-visibility"/>
          <body>An indication of the visibility of the member outside of its namespace. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Member-visibility-lowerValue" xmi:uuid="725A27D7-D3DC-4FB2-9FD2-74F8AC2B7D5C" xmi:type="uml:LiteralInteger"/>
        <name>visibility</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-isStub" xmi:uuid="725A27D7-D3DC-4B04-9F4D-74F8F6FCB225" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-Member-isStub-ownedComment" xmi:uuid="725A27D7-D3DC-4255-997A-74F8F2BEC8A2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isStub"/>
          <body>Whether this member definition is a stub for a subunit. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-Member-isStub-defaultValue" xmi:uuid="725A27D7-D3DC-4472-9E01-74F886CA1F6F" xmi:type="uml:LiteralBoolean"/>
        <name>isStub</name>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-namespace" xmi:uuid="725A27D7-D3DC-4A55-9F9D-74F88CE6B798" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Member-namespace-ownedComment" xmi:uuid="725A27D7-D3DC-4C03-93C9-74F82FC9672E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-namespace"/>
          <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>
        </ownedComment>
        <lowerValue xmi:id="Alf-Member-namespace-lowerValue" xmi:uuid="725A27D7-D3DC-45A3-961D-74F858014792" xmi:type="uml:LiteralInteger"/>
        <name>namespace</name>
        <type xmi:idref="Alf-NamespaceDefinition"/>
        <association xmi:idref="Alf-A_ownedMember_namespace"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-annotation" xmi:uuid="725A27D7-D3DC-4A47-9131-74F833FE5C8A" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Member-annotation-ownedComment" xmi:uuid="725A27D7-D3DC-46A1-998E-74F857C439C3" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-annotation"/>
          <body>The stereotype annotations on this member definition. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Member-annotation-lowerValue" xmi:uuid="725A27D7-D3DC-4CB7-9A9E-74F8A5977E98" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-Member-annotation-upperValue" xmi:uuid="725A27D7-D3DC-4930-90AB-74F8995BA6F6" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>annotation</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-StereotypeAnnotation"/>
        <association xmi:idref="Alf-A_annotation_member"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-isFeature" xmi:uuid="725A27D7-D3DC-4B23-9F6B-74F8A0DF4771" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-Member-isFeature-ownedComment" xmi:uuid="725A27D7-D3DC-43B4-9DEB-74F86F7DE1FF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isFeature"/>
          <body>Whether this member is a feature of a classifier. </body>
        </ownedComment>
        <defaultValue xmi:id="Alf-Member-isFeature-defaultValue" xmi:uuid="725A27D7-D3DC-43E4-94EC-74F8FEF9F673" xmi:type="uml:LiteralBoolean"/>
        <name>isFeature</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-isPrimitive" xmi:uuid="725A27D7-D3DC-4F38-96B2-74F8244A7C06" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-Member-isPrimitive-ownedComment" xmi:uuid="725A27D7-D3DC-4F1D-9CCD-74F8B15762AA" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isPrimitive"/>
          <body>Whether this member is a primitive or not. </body>
        </ownedComment>
        <name>isPrimitive</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-isExternal" xmi:uuid="725A27D7-D3DC-4D67-9288-74F8A58EB924" xmi:type="uml:Property">
        <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
        <ownedComment xmi:id="Alf-Member-isExternal-ownedComment" xmi:uuid="725A27D7-D3DC-418E-9D58-74F819465353" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isExternal"/>
          <body>Whether this member is external or not. </body>
        </ownedComment>
        <name>isExternal</name>
        <isDerived>true</isDerived>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-Member-subunit" xmi:uuid="725A27D7-D3DC-488F-9375-74F8112757AF" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-Member-subunit-ownedComment" xmi:uuid="725A27D7-D3DC-45B7-936C-74F867CBD555" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-subunit"/>
          <body>The subunit corresponding to the member, if the member is a stub. </body>
        </ownedComment>
        <lowerValue xmi:id="Alf-Member-subunit-lowerValue" xmi:uuid="725A27D7-D3DC-4848-9C5B-74F837DE004E" xmi:type="uml:LiteralInteger"/>
        <name>subunit</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_subunit_member"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-Member-annotationAllowed" xmi:uuid="725A27D7-D3DC-40DC-9D79-74F8315516F5" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Member-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-4BDE-952D-74F870163C2E" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-annotationAllowed"/>
          <body>Returns true of the given stereotype annotation is allowed for this kind of element.  </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Member-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-4802-9060-74F80E36A93A" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-Member-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4D5B-94FA-74F84EFD3524" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-Member-matchForStub" xmi:uuid="725A27D7-D3DC-4157-938B-74F82906B635" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Member-matchForStub-ownedComment" xmi:uuid="725A27D7-D3DC-4836-984E-74F8D6FFB5C8" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-matchForStub"/>
          <body>Returns true of the given unit definition is a legal match for this member as a stub. By default, always returns false. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Member-matchForStub-unit" xmi:uuid="725A27D7-D3DC-49B7-9FC2-74F8BA9FF290" xmi:type="uml:Parameter">
          <name>unit</name>
          <type xmi:idref="Alf-UnitDefinition"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-Member-matchForStub-ownedParameter-2" xmi:uuid="725A27D7-D3DC-49F6-91E3-74F82D4134D1" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>matchForStub</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-Member-isDistinguishableFrom" xmi:uuid="725A27D7-D3DC-414F-9F2F-74F881950FE3" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Member-isDistinguishableFrom-ownedComment" xmi:uuid="725A27D7-D3DC-4064-9BF6-74F8D6EC8EAF" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isDistinguishableFrom"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Member-isDistinguishableFrom-member" xmi:uuid="725A27D7-D3DC-4551-9C5E-74F816DBCBAB" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-Member-isDistinguishableFrom-member-ownedComment" xmi:uuid="725A27D7-D3DC-4652-9BE3-74F800D1ED25" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-Member-isDistinguishableFrom-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-Member-isDistinguishableFrom-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4BDA-9B86-74F86B7C0653" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isDistinguishableFrom</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-Member-isSameKindAs" xmi:uuid="725A27D7-D3DC-4832-9B9B-74F8B2679EC8" xmi:type="uml:Operation">
        <ownedComment xmi:id="Alf-Member-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-487C-9D98-74F809A40591" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-Member-isSameKindAs"/>
          <body>Returns true if this member is of the same kind as the given member. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-Member-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-41D5-92E2-74F8CDB255B3" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-Member-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-48E3-97FE-74F822D27B4E" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-Member-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-Member-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4EB5-90A7-74F8F5FBFF65" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>Member</name>
      <isAbstract>true</isAbstract>
    </packagedElement>
    <packagedElement xmi:id="Alf-ReceptionDefinition" xmi:uuid="725A27D7-D3DC-4491-9111-74F82C60D082" xmi:type="uml:Class">
      <ownedComment xmi:id="Alf-ReceptionDefinition-ownedComment" xmi:uuid="725A27D7-D3DC-4FCF-9B77-74F8007A483E" xmi:type="uml:Comment">
        <annotatedElement xmi:idref="Alf-ReceptionDefinition"/>
        <body>The declaration of the ability of an active class to receive a signal. </body>
      </ownedComment>
      <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalName" xmi:uuid="725A27D7-D3DC-43C7-9E53-74F826B243BA" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalName-ownedComment" xmi:uuid="725A27D7-D3DC-4E2F-9B84-74F80C5B7812" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-receptionDefinitionSignalName"/>
          <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>
        </ownedComment>
        <specification xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalName-specification" xmi:uuid="725A27D7-D3DC-4EA1-98EB-74F8CC4D9AAD" xmi:type="uml:OpaqueExpression"/>
        <name>receptionDefinitionSignalName</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation" xmi:uuid="725A27D7-D3DC-475D-9D2D-74F8E49F20F1" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4FD5-9A38-74F857743BB2" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation"/>
          <body>The signal for a reception definition is the signal referent of the signal name for the reception definition. </body>
        </ownedComment>
        <specification xmi:id="Alf-ReceptionDefinition-receptionDefinitionSignalDerivation-specification" xmi:uuid="725A27D7-D3DC-46FA-95A8-74F86B981F4D" xmi:type="uml:OpaqueExpression"/>
        <name>receptionDefinitionSignalDerivation</name>
      </ownedRule>
      <ownedRule xmi:id="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation" xmi:uuid="725A27D7-D3DC-492F-95DE-74F8B29489CC" xmi:type="uml:Constraint">
        <ownedComment xmi:id="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation-ownedComment" xmi:uuid="725A27D7-D3DC-4133-95CC-74F83DA7EC39" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation"/>
          <body>A reception definition is a feature. </body>
        </ownedComment>
        <specification xmi:id="Alf-ReceptionDefinition-receptionDefinitionIsFeatureDerivation-specification" xmi:uuid="725A27D7-D3DC-44AE-9145-74F817982A3F" xmi:type="uml:OpaqueExpression"/>
        <name>receptionDefinitionIsFeatureDerivation</name>
      </ownedRule>
      <generalization xmi:id="Alf-ReceptionDefinition-generalization" xmi:uuid="725A27D7-D3DC-43E0-9A6B-74F8565837D5" xmi:type="uml:Generalization">
        <general xmi:idref="Alf-Member"/>
      </generalization>
      <ownedAttribute xmi:id="Alf-ReceptionDefinition-signalName" xmi:uuid="725A27D7-D3DC-4340-9224-74F8A4B617A3" xmi:type="uml:Property">
        <ownedComment xmi:id="Alf-ReceptionDefinition-signalName-ownedComment" xmi:uuid="725A27D7-D3DC-4426-937F-74F884C3AA40" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-signalName"/>
          <body>The name of the signal to be received. </body>
        </ownedComment>
        <name>signalName</name>
        <aggregation>composite</aggregation>
        <type xmi:idref="Alf-QualifiedName"/>
        <association xmi:idref="Alf-A_receptionDefinition_signalName"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="Alf-ReceptionDefinition-signal" xmi:uuid="725A27D7-D3DC-4469-9C70-74F869A1ECAA" xmi:type="uml:Property">
        <name>signal</name>
        <isDerived>true</isDerived>
        <type xmi:idref="Alf-ElementReference"/>
        <association xmi:idref="Alf-A_signal_receptionDefinition"/>
      </ownedAttribute>
      <ownedOperation xmi:id="Alf-ReceptionDefinition-annotationAllowed" xmi:uuid="725A27D7-D3DC-4E4D-98CE-74F80E447303" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-annotationAllowed"/>
        <ownedComment xmi:id="Alf-ReceptionDefinition-annotationAllowed-ownedComment" xmi:uuid="725A27D7-D3DC-40CE-903E-74F8C009DF66" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-annotationAllowed"/>
          <body>Returns true if the annotation is for a stereotype that has a metaclass consistent with Reception. </body>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ReceptionDefinition-annotationAllowed-annotation" xmi:uuid="725A27D7-D3DC-416F-91E8-74F8E7568C2B" xmi:type="uml:Parameter">
          <name>annotation</name>
          <type xmi:idref="Alf-StereotypeAnnotation"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ReceptionDefinition-annotationAllowed-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4DD6-9518-74F804BE5153" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>annotationAllowed</name>
      </ownedOperation>
      <ownedOperation xmi:id="Alf-ReceptionDefinition-isSameKindAs" xmi:uuid="725A27D7-D3DC-4839-94D1-74F85864FEA1" xmi:type="uml:Operation">
        <redefinedOperation xmi:idref="Alf-Member-isSameKindAs"/>
        <ownedComment xmi:id="Alf-ReceptionDefinition-isSameKindAs-ownedComment" xmi:uuid="725A27D7-D3DC-4344-954F-74F8992B43F7" xmi:type="uml:Comment">
          <annotatedElement xmi:idref="Alf-ReceptionDefinition-isSameKindAs"/>
          <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>
        </ownedComment>
        <ownedParameter xmi:id="Alf-ReceptionDefinition-isSameKindAs-member" xmi:uuid="725A27D7-D3DC-4CE8-9F4F-74F8D05956AE" xmi:type="uml:Parameter">
          <ownedComment xmi:id="Alf-ReceptionDefinition-isSameKindAs-member-ownedComment" xmi:uuid="725A27D7-D3DC-4C2C-923E-74F86596373B" xmi:type="uml:Comment">
            <annotatedElement xmi:idref="Alf-ReceptionDefinition-isSameKindAs-member"/>
            <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>
          </ownedComment>
          <name>member</name>
          <type xmi:idref="Alf-Member"/>
        </ownedParameter>
        <ownedParameter xmi:id="Alf-ReceptionDefinition-isSameKindAs-ownedParameter-2" xmi:uuid="725A27D7-D3DC-4278-92B3-74F86B2E8F1B" xmi:type="uml:Parameter">
          <type href="http://www.omg.org/spec/UML/20110701/PrimitiveTypes.xmi#Boolean"> </type>
          <direction>return</direction>
        </ownedParameter>
        <name>isSameKindAs</name>
      </ownedOperation>
      <name>ReceptionDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_ownedMember_namespace" xmi:uuid="725A27D7-D3DC-419C-9941-74F8D63772A6" 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="725A27D7-D3DC-4EA7-91EE-74F8847ED56A" 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="725A27D7-D3DC-4FBA-9B49-74F8715D5069" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_taggedValue_taggedValueList-taggedValueList-lowerValue" xmi:uuid="725A27D7-D3DC-432F-9674-74F8585A689C" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_taggedValue_taggedValueList-taggedValueList-upperValue" xmi:uuid="725A27D7-D3DC-4BDB-9D43-74F828079B48" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>taggedValueList</name>
        <type xmi:idref="Alf-TaggedValueList"/>
        <association xmi:idref="Alf-A_taggedValue_taggedValueList"/>
      </ownedEnd>
      <name>A_taggedValue_taggedValueList</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referentName_importReference" xmi:uuid="725A27D7-D3DC-42B5-93E0-74F8A9C4B1DA" 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="725A27D7-D3DC-41B1-949B-74F855743091" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referentName_importReference-importReference-lowerValue" xmi:uuid="725A27D7-D3DC-4866-9E0E-74F80371F4D2" xmi:type="uml:LiteralInteger"/>
        <name>importReference</name>
        <type xmi:idref="Alf-ImportReference"/>
        <association xmi:idref="Alf-A_referentName_importReference"/>
      </ownedEnd>
      <name>A_referentName_importReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_annotation_member" xmi:uuid="725A27D7-D3DC-4A49-9970-74F894005802" 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="725A27D7-D3DC-408D-99BA-74F88FAB712A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_annotation_member-member-lowerValue" xmi:uuid="725A27D7-D3DC-40E9-9981-74F8C45C5204" xmi:type="uml:LiteralInteger"/>
        <name>member</name>
        <type xmi:idref="Alf-Member"/>
        <association xmi:idref="Alf-A_annotation_member"/>
      </ownedEnd>
      <name>A_annotation_member</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_namespace_unitDefinition" xmi:uuid="725A27D7-D3DC-4014-9699-74F82061D3F1" 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="725A27D7-D3DC-4534-9B50-74F8201F4B19" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_namespace_unitDefinition-unitDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4EEB-925D-74F8BB94638A" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_namespace_unitDefinition-unitDefinition-upperValue" xmi:uuid="725A27D7-D3DC-4EA7-9B4A-74F8AFCCE27B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>unitDefinition</name>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_namespace_unitDefinition"/>
      </ownedEnd>
      <name>A_namespace_unitDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_definition_unit" xmi:uuid="725A27D7-D3DC-4B9B-914C-74F899008C34" 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_namespaceName_unitDefinition" xmi:uuid="725A27D7-D3DC-419E-989B-74F8D0E8F68A" 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="725A27D7-D3DC-41B2-96A4-74F83129F279" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_namespaceName_unitDefinition-unitDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-40DA-9E51-74F83FA822CB" xmi:type="uml:LiteralInteger"/>
        <name>unitDefinition</name>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_namespaceName_unitDefinition"/>
      </ownedEnd>
      <name>A_namespaceName_unitDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_appliedProfile_packageDefinition" xmi:uuid="725A27D7-D3DC-424A-984A-74F8F6F71342" 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="725A27D7-D3DC-4F5F-973C-74F8870559AB" xmi:type="uml:Property">
        <name>packageDefinition</name>
        <type xmi:idref="Alf-PackageDefinition"/>
        <association xmi:idref="Alf-A_appliedProfile_packageDefinition"/>
      </ownedEnd>
      <name>A_appliedProfile_packageDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_body_activityDefnition" xmi:uuid="725A27D7-D3DC-448E-95B8-74F8F4D35B10" 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="725A27D7-D3DC-413F-9D37-74F85E821B6C" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_activityDefnition-activityDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4288-90F8-74F89614EA5B" xmi:type="uml:LiteralInteger"/>
        <name>activityDefinition</name>
        <type xmi:idref="Alf-ActivityDefinition"/>
        <association xmi:idref="Alf-A_body_activityDefnition"/>
      </ownedEnd>
      <name>A_body_activityDefnition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_importedMember" xmi:uuid="725A27D7-D3DC-4683-9FD4-74F8866FB8E5" 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="725A27D7-D3DC-4652-992E-74F8DAFFEAB1" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referent_importedMember-importedMember-lowerValue" xmi:uuid="725A27D7-D3DC-4A47-95FC-74F85F0ED6EB" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_referent_importedMember-importedMember-upperValue" xmi:uuid="725A27D7-D3DC-4C28-9A07-74F8DC396C8B" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>importedMember</name>
        <type xmi:idref="Alf-ImportedMember"/>
        <association xmi:idref="Alf-A_referent_importedMember"/>
      </ownedEnd>
      <name>A_referent_importedMember</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_subunit_member" xmi:uuid="725A27D7-D3DC-43E2-9994-74F8215983D4" 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="725A27D7-D3DC-41DE-9F98-74F8EA513F1E" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_subunit_member-member-lowerValue" xmi:uuid="725A27D7-D3DC-4509-996D-74F85ED8BCF8" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_subunit_member-member-upperValue" xmi:uuid="725A27D7-D3DC-48FA-9AEF-74F829660898" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>member</name>
        <type xmi:idref="Alf-Member"/>
        <association xmi:idref="Alf-A_subunit_member"/>
      </ownedEnd>
      <name>A_subunit_member</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_taggedValues_stereotypeAnnotation" xmi:uuid="725A27D7-D3DC-43CC-9B63-74F8DA4A6472" 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="725A27D7-D3DC-4F46-9CF9-74F8AAEA9B20" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_taggedValues_stereotypeAnnotation-stereotypeAnnotation-lowerValue" xmi:uuid="725A27D7-D3DC-4477-90B4-74F889A5E798" xmi:type="uml:LiteralInteger"/>
        <name>stereotypeAnnotation</name>
        <type xmi:idref="Alf-StereotypeAnnotation"/>
        <association xmi:idref="Alf-A_taggedValues_stereotypeAnnotation"/>
      </ownedEnd>
      <name>A_taggedValues_stereotypeAnnotation</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_referent_importReference" xmi:uuid="725A27D7-D3DC-4615-970B-74F87CF22242" 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="725A27D7-D3DC-4086-9603-74F804FE59F2" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_referent_importReference-importReference-lowerValue" xmi:uuid="725A27D7-D3DC-4E53-95E8-74F8756A93A0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_referent_importReference-importReference-upperValue" xmi:uuid="725A27D7-D3DC-4E46-921C-74F81D813874" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>importReference</name>
        <type xmi:idref="Alf-ImportReference"/>
        <association xmi:idref="Alf-A_referent_importReference"/>
      </ownedEnd>
      <name>A_referent_importReference</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_import_unit" xmi:uuid="725A27D7-D3DC-4571-969D-74F89AB32A73" 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_specialization_classifierDefinition" xmi:uuid="725A27D7-D3DC-494C-9F4F-74F804BCC01E" 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="725A27D7-D3DC-40C2-9CEA-74F89C8D8A1A" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_specialization_classifierDefinition-classifierDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4D0C-9356-74F848E9DDED" xmi:type="uml:LiteralInteger"/>
        <name>classifierDefinition</name>
        <type xmi:idref="Alf-ClassifierDefinition"/>
        <association xmi:idref="Alf-A_specialization_classifierDefinition"/>
      </ownedEnd>
      <name>A_specialization_classifierDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_stereotype_stereotypeAnnotation" xmi:uuid="725A27D7-D3DC-41E3-9E3B-74F8A2B427B3" 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="725A27D7-D3DC-4CB5-97BE-74F8C161A062" xmi:type="uml:Property">
        <name>stereotypeAnnotation</name>
        <type xmi:idref="Alf-StereotypeAnnotation"/>
        <association xmi:idref="Alf-A_stereotype_stereotypeAnnotation"/>
      </ownedEnd>
      <name>A_stereotype_stereotypeAnnotation</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_initializer_propertyDefinition" xmi:uuid="725A27D7-D3DC-422A-9E01-74F8FBA354AF" 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="725A27D7-D3DC-4888-9834-74F897469DBB" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_initializer_propertyDefinition-propertyDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-48D6-9146-74F8472C4DC2" xmi:type="uml:LiteralInteger"/>
        <name>propertyDefinition</name>
        <type xmi:idref="Alf-PropertyDefinition"/>
        <association xmi:idref="Alf-A_initializer_propertyDefinition"/>
      </ownedEnd>
      <name>A_initializer_propertyDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_typeName_typedElementDefinition" xmi:uuid="725A27D7-D3DC-4BBA-936A-74F8083BF8F0" 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="725A27D7-D3DC-4E9C-9AEB-74F8ED6CF2BA" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_typeName_typedElementDefinition-typedElementDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4740-9B62-74F8DB37A812" xmi:type="uml:LiteralInteger"/>
        <name>typedElementDefinition</name>
        <type xmi:idref="Alf-TypedElementDefinition"/>
        <association xmi:idref="Alf-A_typeName_typedElementDefinition"/>
      </ownedEnd>
      <name>A_typeName_typedElementDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_signal_receptionDefinition" xmi:uuid="725A27D7-D3DC-4D1E-91E1-74F8DA1AFAA4" 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="725A27D7-D3DC-42FA-97DA-74F8BBA08F73" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_signal_receptionDefinition-receptionDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-46AD-9906-74F83F2DEB09" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_signal_receptionDefinition-receptionDefinition-upperValue" xmi:uuid="725A27D7-D3DC-472A-9422-74F8CCE66B86" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>receptionDefinition</name>
        <type xmi:idref="Alf-ReceptionDefinition"/>
        <association xmi:idref="Alf-A_signal_receptionDefinition"/>
      </ownedEnd>
      <name>A_signal_receptionDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_classifierBehavior_activeClassDefinition" xmi:uuid="725A27D7-D3DC-4111-9255-74F823E18A96" 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="725A27D7-D3DC-4734-9CA4-74F8DBC7EB59" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_classifierBehavior_activeClassDefinition-activeClassDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4A8A-9AAC-74F868268ABA" xmi:type="uml:LiteralInteger"/>
        <name>activeClassDefinition</name>
        <type xmi:idref="Alf-ActiveClassDefinition"/>
        <association xmi:idref="Alf-A_classifierBehavior_activeClassDefinition"/>
      </ownedEnd>
      <name>A_classifierBehavior_activeClassDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_receptionDefinition_signalName" xmi:uuid="725A27D7-D3DC-494A-9390-74F8736104AE" 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="725A27D7-D3DC-4747-9BBF-74F84E660F60" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_receptionDefinition_signalName-receptionDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4388-976F-74F871942259" xmi:type="uml:LiteralInteger"/>
        <name>receptionDefinition</name>
        <type xmi:idref="Alf-ReceptionDefinition"/>
        <association xmi:idref="Alf-A_receptionDefinition_signalName"/>
      </ownedEnd>
      <name>A_receptionDefinition_signalName</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_stereotypeName_stereotypeAnnotation" xmi:uuid="725A27D7-D3DC-40E8-9D8A-74F841547AA0" 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="725A27D7-D3DC-40A8-92E7-74F8DE416577" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_stereotypeName_stereotypeAnnotation-stereotypeAnnotation-lowerValue" xmi:uuid="725A27D7-D3DC-42E7-9A15-74F8ED12E4AE" xmi:type="uml:LiteralInteger"/>
        <name>stereotypeAnnotation</name>
        <type xmi:idref="Alf-StereotypeAnnotation"/>
        <association xmi:idref="Alf-A_stereotypeName_stereotypeAnnotation"/>
      </ownedEnd>
      <name>A_stereotypeName_stereotypeAnnotation</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_type_typedElementDefinition" xmi:uuid="725A27D7-D3DC-4247-99B1-74F83DD30928" 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="725A27D7-D3DC-4EB8-9E37-74F8767D7B62" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_type_typedElementDefinition-typedElementDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4A9D-93D1-74F8223159F0" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_type_typedElementDefinition-typedElementDefinition-upperValue" xmi:uuid="725A27D7-D3DC-449A-915B-74F832EE34CA" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>typedElementDefinition</name>
        <type xmi:idref="Alf-TypedElementDefinition"/>
        <association xmi:idref="Alf-A_type_typedElementDefinition"/>
      </ownedEnd>
      <name>A_type_typedElementDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_body_operationDefinition" xmi:uuid="725A27D7-D3DC-4C9B-957D-74F82FC2253C" xmi:type="uml:Association">
      <memberEnd xmi:idref="Alf-OperationDefinition-body"/>
      <memberEnd xmi:idref="Alf-A_body_operationDefinition-ownedEnd"/>
      <ownedEnd xmi:id="Alf-A_body_operationDefinition-ownedEnd" xmi:uuid="725A27D7-D3DC-49DD-9C92-74F895A04EEB" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_body_operationDefinition-ownedEnd-lowerValue" xmi:uuid="725A27D7-D3DC-43AA-9D29-74F8D238F964" xmi:type="uml:LiteralInteger"/>
        <type xmi:idref="Alf-OperationDefinition"/>
        <association xmi:idref="Alf-A_body_operationDefinition"/>
      </ownedEnd>
      <name>A_body_operationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_specializationReferent_classifierDefinition" xmi:uuid="725A27D7-D3DC-4592-9D16-74F8BEEFBE2D" 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="725A27D7-D3DC-456E-9DB6-74F8D9BCB059" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_specializationReferent_classifierDefinition-classifierDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-44EE-912C-74F84BBDB40A" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_specializationReferent_classifierDefinition-classifierDefinition-upperValue" xmi:uuid="725A27D7-D3DC-49DB-98E3-74F89F220767" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>classifierDefinition</name>
        <type xmi:idref="Alf-ClassifierDefinition"/>
        <association xmi:idref="Alf-A_specializationReferent_classifierDefinition"/>
      </ownedEnd>
      <name>A_specializationReferent_classifierDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_appliedProfile_unitDefinition" xmi:uuid="725A27D7-D3DC-42E2-9684-74F84C23C693" 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="725A27D7-D3DC-4720-992B-74F82BF19FA7" xmi:type="uml:Property">
        <name>unitDefinition</name>
        <type xmi:idref="Alf-UnitDefinition"/>
        <association xmi:idref="Alf-A_appliedProfile_unitDefinition"/>
      </ownedEnd>
      <name>A_appliedProfile_unitDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_redefinedOperation_operationDefinition" xmi:uuid="725A27D7-D3DC-4F12-995E-74F8DBC30F21" 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="725A27D7-D3DC-4F86-9A61-74F8465F7327" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_redefinedOperation_operationDefinition-operationDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4388-93B6-74F89BA2CDAC" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_redefinedOperation_operationDefinition-operationDefinition-upperValue" xmi:uuid="725A27D7-D3DC-41EB-9016-74F80EF9B43F" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>operationDefinition</name>
        <type xmi:idref="Alf-OperationDefinition"/>
        <association xmi:idref="Alf-A_redefinedOperation_operationDefinition"/>
      </ownedEnd>
      <name>A_redefinedOperation_operationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_redefinition_operationDefinition" xmi:uuid="725A27D7-D3DC-4850-945F-74F8B8141C9F" 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="725A27D7-D3DC-4FB5-9189-74F81D69CBA4" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_redefinition_operationDefinition-operationDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-4542-9F63-74F82C56CCAF" xmi:type="uml:LiteralInteger"/>
        <name>operationDefinition</name>
        <type xmi:idref="Alf-OperationDefinition"/>
        <association xmi:idref="Alf-A_redefinition_operationDefinition"/>
      </ownedEnd>
      <name>A_redefinition_operationDefinition</name>
    </packagedElement>
    <packagedElement xmi:id="Alf-A_member_namespaceDefinition" xmi:uuid="725A27D7-D3DC-4E15-9875-74F8EC6110A0" 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="725A27D7-D3DC-4866-9CD6-74F871EDEFA3" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_member_namespaceDefinition-namespaceDefinition-lowerValue" xmi:uuid="725A27D7-D3DC-414F-9C5C-74F8B4E6897E" xmi:type="uml:LiteralUnlimitedNatural"/>
        <upperValue xmi:id="Alf-A_member_namespaceDefinition-namespaceDefinition-upperValue" xmi:uuid="725A27D7-D3DC-4CB1-9738-74F8EF164898" xmi:type="uml:LiteralUnlimitedNatural">
          <value>*</value>
        </upperValue>
        <name>namespaceDefinition</name>
        <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="725A27D7-D3DC-47B1-90EF-74F823CC1BC8" 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="725A27D7-D3DC-4EF6-995E-74F8390E2742" xmi:type="uml:Property">
        <lowerValue xmi:id="Alf-A_names_stereotypeAnnotation-stereotypeAnnotation-lowerValue" xmi:uuid="725A27D7-D3DC-44C2-9864-74F8CA0B91C4" xmi:type="uml:LiteralInteger"/>
        <name>stereotypeAnnotation</name>
        <type xmi:idref="Alf-StereotypeAnnotation"/>
        <association xmi:idref="Alf-A_names_stereotypeAnnotation"/>
      </ownedEnd>
      <name>A_names_stereotypeAnnotation</name>
    </packagedElement>
    <name>Alf</name>
    <URI>http://www.omg.org/spec/ALF/20120827</URI>
  </uml:Package>
  <mofext:Tag xmi:id="_-Tag" xmi:uuid="725A27D7-D3DC-4D4E-923F-74F8A6C30BB2" xmi:type="mofext:Tag">
    <name>org.omg.xmi.nsPrefix</name>
    <value>alf</value>
    <element xmi:idref="Alf"/>
  </mofext:Tag>
</xmi:XMI>
