[ocl25] Match UML/Pivot Operations too
diff --git a/examples/org.eclipse.ocl.examples.build/model/MDTOCL.uml b/examples/org.eclipse.ocl.examples.build/model/MDTOCL.uml
index 8da75fd..cdbc5b2 100644
--- a/examples/org.eclipse.ocl.examples.build/model/MDTOCL.uml
+++ b/examples/org.eclipse.ocl.examples.build/model/MDTOCL.uml
@@ -129,7 +129,7 @@
         </ownedAttribute>
       </packagedElement>
       <packagedElement xmi:type="uml:PrimitiveType" xmi:id="MDTOCL-MDT_OCL_Ecore-String" name="String"/>
-      <packagedElement xmi:type="uml:Class" xmi:id="MDTOCL-MDT_OCL_Ecore-Type" name="Type"/>
+      <packagedElement xmi:type="uml:Class" xmi:id="MDTOCL-MDT_OCL_Ecore-Type" name="Type" isAbstract="true"/>
       <packagedElement xmi:type="uml:Class" xmi:id="MDTOCL-MDT_OCL_Ecore-Constraint" name="Constraint">
         <ownedAttribute xmi:id="MDTOCL-MDT_OCL_Ecore-Constraint-isCallable" name="isCallable" type="MDTOCL-MDT_OCL_Ecore-Boolean">
           <defaultValue xmi:type="uml:LiteralString" xmi:id="_Xp6N_37VEeOu79LxSz8Ylw" value="false"/>
@@ -418,8 +418,9 @@
     </packagedElement>
     <packagedElement xmi:type="uml:Package" xmi:id="_gYLjQMXHEeS34PyjCbzxBg" name="MDT_OCL_Xtra">
       <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_k2StUMXHEeS34PyjCbzxBg" name="Boolean"/>
+      <packagedElement xmi:type="uml:Class" xmi:id="_FIXREMXJEeS34PyjCbzxBg" name="CallExp" isAbstract="true"/>
       <packagedElement xmi:type="uml:Class" xmi:id="_ndBCgMXIEeS34PyjCbzxBg" name="Class"/>
-      <packagedElement xmi:type="uml:Class" xmi:id="_Eo__EMXKEeS34PyjCbzxBg" name="Element">
+      <packagedElement xmi:type="uml:Class" xmi:id="_Eo__EMXKEeS34PyjCbzxBg" name="Element" isAbstract="true">
         <ownedOperation xmi:id="_jcVwcMXKEeS34PyjCbzxBg" name="getValue">
           <ownedParameter xmi:id="_jcVwccXKEeS34PyjCbzxBg" name="result" type="_Eo__EMXKEeS34PyjCbzxBg" direction="return">
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OnQigMXLEeS34PyjCbzxBg"/>
@@ -428,7 +429,6 @@
           <ownedParameter xmi:id="_jcVwc8XKEeS34PyjCbzxBg" name="propertyName" type="_r9bnwMXKEeS34PyjCbzxBg"/>
         </ownedOperation>
       </packagedElement>
-      <packagedElement xmi:type="uml:Class" xmi:id="_FIXREMXJEeS34PyjCbzxBg" name="OCLExpression"/>
       <packagedElement xmi:type="uml:Class" xmi:id="_SoKMIMXLEeS34PyjCbzxBg" name="Property">
         <ownedOperation xmi:id="_bM_T8MXLEeS34PyjCbzxBg" name="isAttribute">
           <ownedParameter xmi:id="_bM_T8cXLEeS34PyjCbzxBg" name="result" type="_k2StUMXHEeS34PyjCbzxBg" direction="return"/>
@@ -447,7 +447,7 @@
           </ownedParameter>
         </ownedOperation>
       </packagedElement>
-      <packagedElement xmi:type="uml:Class" xmi:id="__bW1gMXJEeS34PyjCbzxBg" name="ReferringElement" isAbstract="true">
+      <packagedElement xmi:type="uml:Interface" xmi:id="_pYTT4MvxEeSQp_SNQad9MA" name="ReferringElement">
         <ownedOperation xmi:id="_HGq7YMXKEeS34PyjCbzxBg" name="getReferredElement">
           <ownedParameter xmi:id="_HGq7YcXKEeS34PyjCbzxBg" name="result" type="_Eo__EMXKEeS34PyjCbzxBg" direction="return">
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HGq7YsXKEeS34PyjCbzxBg" value="1"/>
@@ -463,7 +463,7 @@
       </packagedElement>
       <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_r9bnwMXKEeS34PyjCbzxBg" name="String"/>
       <packagedElement xmi:type="uml:Class" xmi:id="_2Ke8gMXIEeS34PyjCbzxBg" name="TemplateParameter"/>
-      <packagedElement xmi:type="uml:Class" xmi:id="_ZHWkgMXIEeS34PyjCbzxBg" name="Type">
+      <packagedElement xmi:type="uml:Class" xmi:id="_ZHWkgMXIEeS34PyjCbzxBg" name="Type" isAbstract="true">
         <ownedOperation xmi:id="_cdfZ4MXIEeS34PyjCbzxBg" name="flattenedType">
           <ownedParameter xmi:id="_cdfZ4cXIEeS34PyjCbzxBg" name="result" type="_ZHWkgMXIEeS34PyjCbzxBg" direction="return">
             <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wqnlEMXJEeS34PyjCbzxBg"/>
@@ -485,13 +485,13 @@
           <ownedParameter xmi:id="_CQByAMXJEeS34PyjCbzxBg" name="selfType" type="_ZHWkgMXIEeS34PyjCbzxBg"/>
         </ownedOperation>
       </packagedElement>
-      <packagedElement xmi:type="uml:Class" xmi:id="_mW914MXHEeS34PyjCbzxBg" name="TypedElement">
+      <packagedElement xmi:type="uml:Class" xmi:id="_mW914MXHEeS34PyjCbzxBg" name="TypedElement" isAbstract="true">
         <ownedOperation xmi:id="_yDnDMMXHEeS34PyjCbzxBg" name="CompatibleBody">
           <ownedParameter xmi:id="_1sEXoMXHEeS34PyjCbzxBg" name="result" type="_k2StUMXHEeS34PyjCbzxBg" direction="return"/>
           <ownedParameter xmi:id="_2UmXQMXHEeS34PyjCbzxBg" name="bodySpecification" type="_me3NoMXHEeS34PyjCbzxBg"/>
         </ownedOperation>
       </packagedElement>
-      <packagedElement xmi:type="uml:Class" xmi:id="_me3NoMXHEeS34PyjCbzxBg" name="ValueSpecification"/>
+      <packagedElement xmi:type="uml:Class" xmi:id="_me3NoMXHEeS34PyjCbzxBg" name="ValueSpecification" isAbstract="true"/>
     </packagedElement>
     <profileApplication xmi:id="_0zzhIMezEd-sJIf4tYBt-g">
       <eAnnotations xmi:id="_0z1WUMezEd-sJIf4tYBt-g" source="http://www.eclipse.org/uml2/2.0.0/UML">
@@ -517,7 +517,6 @@
   <Ecore:EDataType xmi:id="_o1e-wAFrEeCxa8jNFLJGww" instanceClassName="java.lang.Object" base_PrimitiveType="MDTOCL-MDT_OCL_Evaluation-Object"/>
   <Ecore:EReference xmi:id="_CoMyoHSeEeC3-tVPqYIPdQ" isTransient="true" base_Property="MDTOCL-MDT_OCL_Cache-TemplateableElement-unspecializedElement" isResolveProxies="false"/>
   <Ecore:EClass xmi:id="_eO7hgEOIEeGtTYkEXjnZtw" instanceClassName="org.eclipse.ocl.pivot.utilities.MorePivotable" base_Interface="MDTOCL-MDT_OCL_Framework-MorePivotable" className="MorePivotable"/>
-  <Ecore:EClass xmi:id="_VF5C4PtzEeGgYeRoQSJFAw" base_Interface="MDTOCL-MDT_OCL_Referring-ReferringElement"/>
   <Ecore:EReference xmi:id="_rK9W8DTYEeS3ndOfdXtkXQ" isTransient="true" base_Property="_qhogAC-cEeSc2LncrXmagQ" isResolveProxies="false"/>
   <Ecore:EAttribute xmi:id="_zxJwsDTYEeS3ndOfdXtkXQ" isTransient="true" isVolatile="true" base_Property="_iMnUQBuwEeSIos3S87O_rg"/>
   <Ecore:EReference xmi:id="_7JX7cDTYEeS3ndOfdXtkXQ" isTransient="true" base_Property="_x-pUsC9bEeSc2LncrXmagQ" isResolveProxies="false"/>
diff --git a/examples/org.eclipse.ocl.examples.build/model/OCL.uml b/examples/org.eclipse.ocl.examples.build/model/OCL.uml
index c25dfde..8e381cd 100644
--- a/examples/org.eclipse.ocl.examples.build/model/OCL.uml
+++ b/examples/org.eclipse.ocl.examples.build/model/OCL.uml
@@ -462,7 +462,7 @@
       <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-UnspecifiedValueExp" name="UnspecifiedValueExp">
         <generalization xmi:id="_XpnTLn7VEeOu79LxSz8Ylw" general="OCL-OCL_Expressions-OCLExpression"/>
       </packagedElement>
-      <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-ValueSpecification" name="ValueSpecification"/>
+      <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-ValueSpecification" name="ValueSpecification" isAbstract="true"/>
       <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-Variable" name="Variable"/>
       <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-VariableDeclaration" name="VariableDeclaration" isAbstract="true"/>
       <packagedElement xmi:type="uml:Class" xmi:id="OCL-OCL_Expressions-VariableExp" name="VariableExp">
diff --git a/examples/org.eclipse.ocl.examples.build/model/UML2ASinEcore.xmi b/examples/org.eclipse.ocl.examples.build/model/UML2ASinEcore.xmi
index 72e4d00..128d09d 100644
--- a/examples/org.eclipse.ocl.examples.build/model/UML2ASinEcore.xmi
+++ b/examples/org.eclipse.ocl.examples.build/model/UML2ASinEcore.xmi
@@ -31,7 +31,7 @@
       xsi:type="u2ec:CreatePackage"
       newName="pivot"
       nsPrefix="pivot"
-      nsURI="http://www.eclipse.org/ocl/0.9.0/Pivot"
+      nsURI="http://www.eclipse.org/ocl/2015/Pivot"
       isASmetamodel="true">
     <oldPackages
         href="../model-gen/PrimitiveTypes.uml#PrimitiveTypes"/>
diff --git a/examples/org.eclipse.ocl.examples.build/model/UML2EcoreMapping.ecore b/examples/org.eclipse.ocl.examples.build/model/UML2EcoreMapping.ecore
index d50cc38..655854b 100644
--- a/examples/org.eclipse.ocl.examples.build/model/UML2EcoreMapping.ecore
+++ b/examples/org.eclipse.ocl.examples.build/model/UML2EcoreMapping.ecore
@@ -14,7 +14,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="CreateOperation" eSuperTypes="#//OperationMapping">

     <eOperations name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

       <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">

-        <details key="body" value="nameLabel(newName) + ' &lt;= ' + operationLabels(oldOperations)"/>

+        <details key="body" value="'nameLabel(newName)' + ' &lt;= ' + 'operationLabels(oldOperations)'"/>

       </eAnnotations>

     </eOperations>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="newName" lowerBound="1"

@@ -137,7 +137,7 @@
     </eOperations>

     <eOperations name="operationLabels" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">

       <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">

-        <details key="body" value="operations->sortedBy(nameLabel(name))->iterate(p; acc : String = '' | acc + ' ' + nameLabel(p.class.package.name) + '::' + nameLabel(p.class.name) + '::' + nameLabel(p.name))"/>

+        <details key="body" value="operations->sortedBy(nameLabel(name))->iterate(p; acc : String = '' | let type : uml::Type = if p.class &lt;> null then p.class else p.interface endif in acc + ' ' + nameLabel(p.class.package.name) + '::' + nameLabel(p.class.name) + '::' + nameLabel(p.name))"/>

       </eAnnotations>

       <eParameters name="operations" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/uml2/5.0.0/UML#//Operation"/>

     </eOperations>

diff --git a/examples/org.eclipse.ocl.examples.build/model/pivot.uml b/examples/org.eclipse.ocl.examples.build/model/pivot.uml
deleted file mode 100644
index 00214b8..0000000
--- a/examples/org.eclipse.ocl.examples.build/model/pivot.uml
+++ /dev/null
@@ -1,1702 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="pivot" name="pivot" URI="http://www.eclipse.org/ocl/0.9.0/Pivot">
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-Boolean" name="Boolean"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-Integer" name="Integer"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-LibraryFeature" name="LibraryFeature"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-Object" name="Object"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-Real" name="Real"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-String" name="String"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-Throwable" name="Throwable"/>
-  <packagedElement xmi:type="uml:PrimitiveType" xmi:id="pivot-UnlimitedNatural" name="UnlimitedNatural"/>
-  <packagedElement xmi:type="uml:Enumeration" xmi:id="pivot-AssociativityKind" name="AssociativityKind">
-    <ownedLiteral xmi:id="__3vUksJdEeShyISVl59OvA" name="left"/>
-    <ownedLiteral xmi:id="__3vUk8JdEeShyISVl59OvA" name="right">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUlMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Enumeration" xmi:id="pivot-CollectionKind" name="CollectionKind">
-    <ownedLiteral xmi:id="__3vUlsJdEeShyISVl59OvA" name="Bag"/>
-    <ownedLiteral xmi:id="__3vUl8JdEeShyISVl59OvA" name="Collection">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUmMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUmcJdEeShyISVl59OvA" name="OrderedSet">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUmsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUm8JdEeShyISVl59OvA" name="Sequence">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUnMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUncJdEeShyISVl59OvA" name="Set">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUnsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Enumeration" xmi:id="pivot-PseudostateKind" name="PseudostateKind">
-    <ownedLiteral xmi:id="__3vUoMJdEeShyISVl59OvA" name="choice"/>
-    <ownedLiteral xmi:id="__3vUocJdEeShyISVl59OvA" name="deepHistory">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUosJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUo8JdEeShyISVl59OvA" name="entryPoint">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUpMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUpcJdEeShyISVl59OvA" name="exitPoint">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUpsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUp8JdEeShyISVl59OvA" name="fork">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUqMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUqcJdEeShyISVl59OvA" name="initial">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUqsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUq8JdEeShyISVl59OvA" name="join">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUrMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUrcJdEeShyISVl59OvA" name="junction">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUrsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUr8JdEeShyISVl59OvA" name="shallowHistory">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUsMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUscJdEeShyISVl59OvA" name="terminate">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUssJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Enumeration" xmi:id="pivot-TransitionKind" name="TransitionKind">
-    <ownedLiteral xmi:id="__3vUtMJdEeShyISVl59OvA" name="external"/>
-    <ownedLiteral xmi:id="__3vUtcJdEeShyISVl59OvA" name="internal">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUtsJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-    <ownedLiteral xmi:id="__3vUt8JdEeShyISVl59OvA" name="local">
-      <specification xmi:type="uml:LiteralInteger" xmi:id="__3vUuMJdEeShyISVl59OvA"/>
-    </ownedLiteral>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Annotation" name="Annotation">
-    <generalization xmi:id="__3vUwsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Annotation-ownedContents" name="ownedContents" type="pivot-Element" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedContents_Annotation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vUxMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vUxcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Annotation-ownedDetails" name="ownedDetails" type="pivot-Detail" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedDetails_Annotation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vUx8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vUyMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Annotation-references" name="references" type="pivot-Element" isOrdered="true" association="pivot-A_references_Annotation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vUysJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vUy8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-AnyType" name="AnyType">
-    <generalization xmi:id="__3vW8MJdEeShyISVl59OvA" general="pivot-Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-AssociationClass" name="AssociationClass">
-    <generalization xmi:id="__3vWicJdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-AssociationClass-unownedAttributes" name="unownedAttributes" type="pivot-Property" association="pivot-A_unownedAttributes_associationClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWi8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWjMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-AssociationClassCallExp" name="AssociationClassCallExp">
-    <generalization xmi:id="__3vW8sJdEeShyISVl59OvA" general="pivot-NavigationCallExp"/>
-    <ownedAttribute xmi:id="pivot-AssociationClassCallExp-referredAssociationClass" name="referredAssociationClass" type="pivot-AssociationClass"
-        isOrdered="true" association="pivot-A_referredAssociationClass_AssociationClassCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vW9MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-BagType" name="BagType">
-    <generalization xmi:id="__3vXFMJdEeShyISVl59OvA" general="pivot-CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Behavior" name="Behavior" isAbstract="true">
-    <generalization xmi:id="__3vV_MJdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-Behavior-owningTransition" name="owningTransition" type="pivot-Transition" isOrdered="true" association="pivot-A_ownedEffect_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV_sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-BooleanLiteralExp" name="BooleanLiteralExp">
-    <generalization xmi:id="__3vXJMJdEeShyISVl59OvA" general="pivot-PrimitiveLiteralExp"/>
-    <ownedAttribute xmi:id="pivot-BooleanLiteralExp-booleanSymbol" name="booleanSymbol" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CallExp" name="CallExp" isAbstract="true">
-    <generalization xmi:id="__3vXAMJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-CallExp-isImplicit" name="isImplicit" visibility="public" type="pivot-Boolean" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXAsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CallExp-ownedSource" name="ownedSource" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedSource_CallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXBMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CallOperationAction" name="CallOperationAction">
-    <generalization xmi:id="__3vXK8JdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-CallOperationAction-operation" name="operation" type="pivot-Operation" isOrdered="true" association="pivot-A_operation_CallOperationAction"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Class" name="Class">
-    <generalization xmi:id="__3vU9MJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <generalization xmi:id="__3vU9cJdEeShyISVl59OvA" general="pivot-TemplateableElement"/>
-    <generalization xmi:id="__3vU9sJdEeShyISVl59OvA" general="pivot-Type"/>
-    <ownedAttribute xmi:id="pivot-Class-ownedOperations" name="ownedOperations" type="pivot-Operation" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedOperations_owningClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU-MJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU-cJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-instanceClassName" name="instanceClassName" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU-8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-isAbstract" name="isAbstract" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Class-isActive" name="isActive" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Class-isInterface" name="isInterface" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Class-extenders" name="extenders" type="pivot-StereotypeExtender" association="pivot-A_class_extenders">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVAMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVAcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-ownedBehaviors" name="ownedBehaviors" type="pivot-Behavior" aggregation="composite" association="pivot-A_ownedBehaviors_Class">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVA8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVBMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-ownedInvariants" name="ownedInvariants" type="pivot-Constraint" aggregation="composite" association="pivot-A_ownedInvariants_Class">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVBsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVB8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-ownedProperties" name="ownedProperties" type="pivot-Property" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedProperties_owningClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVCcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVCsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-owningPackage" name="owningPackage" type="pivot-Package" isOrdered="true" association="pivot-A_ownedClasses_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVDMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Class-superClasses" name="superClasses" type="pivot-Class" association="pivot-A_superClasses_Class">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVDsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVD8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CollectionItem" name="CollectionItem">
-    <generalization xmi:id="__3vXMMJdEeShyISVl59OvA" general="pivot-CollectionLiteralPart"/>
-    <ownedAttribute xmi:id="pivot-CollectionItem-ownedItem" name="ownedItem" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedItem_CollectionItem"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CollectionLiteralExp" name="CollectionLiteralExp">
-    <generalization xmi:id="__3vXN8JdEeShyISVl59OvA" general="pivot-LiteralExp"/>
-    <ownedAttribute xmi:id="pivot-CollectionLiteralExp-kind" name="kind" visibility="public" type="pivot-CollectionKind" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-CollectionLiteralExp-ownedParts" name="ownedParts" type="pivot-CollectionLiteralPart" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedParts_CollectionLiteralExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXOsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXO8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CollectionLiteralPart" name="CollectionLiteralPart" isAbstract="true">
-    <generalization xmi:id="__3vXM8JdEeShyISVl59OvA" general="pivot-TypedElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CollectionRange" name="CollectionRange">
-    <generalization xmi:id="__3vXP8JdEeShyISVl59OvA" general="pivot-CollectionLiteralPart"/>
-    <ownedAttribute xmi:id="pivot-CollectionRange-ownedFirst" name="ownedFirst" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedFirst_CollectionRange"/>
-    <ownedAttribute xmi:id="pivot-CollectionRange-ownedLast" name="ownedLast" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedLast_CollectionRange"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CollectionType" name="CollectionType">
-    <generalization xmi:id="__3vXFsJdEeShyISVl59OvA" general="pivot-DataType"/>
-    <ownedAttribute xmi:id="pivot-CollectionType-lower" name="lower" visibility="public" type="pivot-Integer" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-CollectionType-upper" name="upper" visibility="public" type="pivot-UnlimitedNatural" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-CollectionType-elementType" name="elementType" type="pivot-Type" isOrdered="true" association="pivot-A_elementType_CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Comment" name="Comment">
-    <generalization xmi:id="__3vU4cJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-Comment-body" name="body" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU48JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Comment-annotatedElements" name="annotatedElements" type="pivot-Element" association="pivot-A_annotatedElements_annotatingComments">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU5cJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU5sJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Comment-owningElement" name="owningElement" type="pivot-Element" isOrdered="true" association="pivot-A_ownedComments_owningElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU6MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CompleteClass" name="CompleteClass">
-    <generalization xmi:id="__3vXR8JdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-CompleteClass-owningCompletePackage" name="owningCompletePackage" type="pivot-CompletePackage" isOrdered="true"
-        association="pivot-A_ownedCompleteClasses_owningCompletePackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXScJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompleteClass-partialClasses" name="partialClasses" type="pivot-Class" association="pivot-A_partialClasses_CompleteClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXS8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXTMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CompleteEnvironment" name="CompleteEnvironment">
-    <generalization xmi:id="__3vXcsJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-CompleteEnvironment-ownedCompleteModel" name="ownedCompleteModel" type="pivot-CompleteModel" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedCompleteModel_owningCompleteEnvironment"/>
-    <ownedAttribute xmi:id="pivot-CompleteEnvironment-ownedStandardLibrary" name="ownedStandardLibrary" type="pivot-StandardLibrary" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedStandardLibrary_owningCompleteEnvironment"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CompleteModel" name="CompleteModel">
-    <generalization xmi:id="__3vXX8JdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-CompleteModel-orphanCompletePackage" name="orphanCompletePackage" type="pivot-OrphanCompletePackage"
-        isOrdered="true" isReadOnly="true" isDerived="true" association="pivot-A_orphanCompletePackage_CompleteModel">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXYcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompleteModel-ownedCompletePackages" name="ownedCompletePackages" type="pivot-CompletePackage" aggregation="composite"
-        association="pivot-A_ownedCompletePackages_owningCompleteModel">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXY8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXZMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompleteModel-owningCompleteEnvironment" name="owningCompleteEnvironment" type="pivot-CompleteEnvironment"
-        isOrdered="true" association="pivot-A_ownedCompleteModel_owningCompleteEnvironment">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXZsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompleteModel-partialModels" name="partialModels" type="pivot-Model" association="pivot-A_partialModels_CompleteModel">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXaMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXacJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompleteModel-primitiveCompletePackage" name="primitiveCompletePackage" type="pivot-PrimitiveCompletePackage"
-        isOrdered="true" isReadOnly="true" isDerived="true" association="pivot-A_primitiveCompletePackage_CompleteModel">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXa8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-CompletePackage" name="CompletePackage">
-    <generalization xmi:id="__3vXTsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-CompletePackage-ownedCompleteClasses" name="ownedCompleteClasses" type="pivot-CompleteClass" aggregation="composite"
-        association="pivot-A_ownedCompleteClasses_owningCompletePackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXUMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXUcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompletePackage-ownedCompletePackages" name="ownedCompletePackages" type="pivot-CompletePackage" aggregation="composite"
-        association="pivot-A_ownedCompletePackages_owningCompletePackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXU8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXVMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompletePackage-owningCompletePackage" name="owningCompletePackage" type="pivot-CompletePackage" isOrdered="true"
-        association="pivot-A_ownedCompletePackages_owningCompletePackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXVsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompletePackage-owningCompleteModel" name="owningCompleteModel" type="pivot-CompleteModel" isOrdered="true"
-        association="pivot-A_ownedCompletePackages_owningCompleteModel">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXWMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-CompletePackage-partialPackages" name="partialPackages" type="pivot-Package" association="pivot-A_partialPackages_CompletePackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXWsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXW8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ConnectionPointReference" name="ConnectionPointReference">
-    <generalization xmi:id="__3vWOsJdEeShyISVl59OvA" general="pivot-Vertex"/>
-    <ownedAttribute xmi:id="pivot-ConnectionPointReference-entries" name="entries" type="pivot-Pseudostate" association="pivot-A_entries_ConnectionPointReference">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWPMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWPcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ConnectionPointReference-exits" name="exits" type="pivot-Pseudostate" association="pivot-A_exits_ConnectionPointReference">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWP8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWQMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ConnectionPointReference-owningState" name="owningState" type="pivot-State" isOrdered="true" association="pivot-A_ownedConnections_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWQsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Constraint" name="Constraint">
-    <generalization xmi:id="__3vVFsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Constraint-isCallable" name="isCallable" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Constraint-constrainedElements" name="constrainedElements" type="pivot-Element" isOrdered="true" association="pivot-A_constrainedElements_Constraint">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVGcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVGsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-context" name="context" type="pivot-Namespace" isOrdered="true" isReadOnly="true" isDerived="true"
-        association="pivot-A_context_Constraint">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVHMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-ownedSpecification" name="ownedSpecification" type="pivot-LanguageExpression" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedSpecification_owningConstraint"/>
-    <ownedAttribute xmi:id="pivot-Constraint-owningPostContext" name="owningPostContext" type="pivot-Operation" isOrdered="true" association="pivot-A_ownedPostconditions_owningPostContext">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVH8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-owningPreContext" name="owningPreContext" type="pivot-Operation" isOrdered="true" association="pivot-A_ownedPreconditions_owningPreContext">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVIcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-owningState" name="owningState" type="pivot-State" isOrdered="true" association="pivot-A_ownedStateInvariant_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVI8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-owningTransition" name="owningTransition" type="pivot-Transition" isOrdered="true" association="pivot-A_ownedGuard_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVJcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Constraint-redefinedConstraints" name="redefinedConstraints" type="pivot-Constraint" association="pivot-A_redefinedConstraints_Constraint">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVJ8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVKMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ConstructorExp" name="ConstructorExp">
-    <generalization xmi:id="__3vXmcJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-ConstructorExp-value" name="value" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXm8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ConstructorExp-ownedParts" name="ownedParts" type="pivot-ConstructorPart" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedParts_ConstructorExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXncJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXnsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ConstructorPart" name="ConstructorPart">
-    <generalization xmi:id="__3vXoMJdEeShyISVl59OvA" general="pivot-TypedElement"/>
-    <ownedAttribute xmi:id="pivot-ConstructorPart-ownedInit" name="ownedInit" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedInit_ConstructorPart"/>
-    <ownedAttribute xmi:id="pivot-ConstructorPart-referredProperty" name="referredProperty" type="pivot-Property" isOrdered="true" association="pivot-A_referredProperty_ConstructorPart"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DataType" name="DataType">
-    <generalization xmi:id="__3vXG8JdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-DataType-isSerializable" name="isSerializable" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-DataType-behavioralClass" name="behavioralClass" type="pivot-Class" isOrdered="true" association="pivot-A_behavioralClass_DataType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXHsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Detail" name="Detail">
-    <generalization xmi:id="__3vW6MJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Detail-values" name="values" visibility="public" type="pivot-String">
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vW6sJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DynamicBehavior" name="DynamicBehavior">
-    <generalization xmi:id="__3vXqsJdEeShyISVl59OvA" general="pivot-Behavior"/>
-    <generalization xmi:id="__3vXq8JdEeShyISVl59OvA" general="pivot-DynamicType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DynamicElement" name="DynamicElement">
-    <generalization xmi:id="__3vXs8JdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-DynamicElement-metaType" name="metaType" type="pivot-Type" isOrdered="true" association="pivot-A_metaType_DynamicElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DynamicProperty" name="DynamicProperty">
-    <generalization xmi:id="__3vXuMJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-DynamicProperty-default" name="default" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXusJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-DynamicProperty-referredProperty" name="referredProperty" type="pivot-Property" isOrdered="true" association="pivot-A_referredProperty_DynamicProperty"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DynamicType" name="DynamicType">
-    <generalization xmi:id="__3vXrcJdEeShyISVl59OvA" general="pivot-Class"/>
-    <generalization xmi:id="__3vXrsJdEeShyISVl59OvA" general="pivot-DynamicElement"/>
-    <ownedAttribute xmi:id="pivot-DynamicType-ownedDynamicProperties" name="ownedDynamicProperties" type="pivot-DynamicProperty" aggregation="composite"
-        association="pivot-A_ownedDynamicProperties_DynamicType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXsMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXscJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-DynamicValueSpecification" name="DynamicValueSpecification">
-    <generalization xmi:id="__3vXwcJdEeShyISVl59OvA" general="pivot-ValueSpecification"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Element" name="Element" isAbstract="true">
-    <ownedAttribute xmi:id="pivot-Element-annotatingComments" name="annotatingComments" type="pivot-Comment" association="pivot-A_annotatedElements_annotatingComments">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU08JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU1MJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Element-ownedComments" name="ownedComments" type="pivot-Comment" aggregation="composite" association="pivot-A_ownedComments_owningElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU1sJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU18JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Element-ownedAnnotations" name="ownedAnnotations" type="pivot-Element" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedAnnotations_Element">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU2cJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU2sJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Element-ownedExtensions" name="ownedExtensions" type="pivot-ElementExtension" aggregation="composite"
-        association="pivot-A_ownedExtensions_base">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vU3MJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vU3cJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vU3sJdEeShyISVl59OvA" client="pivot-Element" supplier="pivot-Visitable" contract="pivot-Visitable"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ElementExtension" name="ElementExtension">
-    <generalization xmi:id="__3vU7sJdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-ElementExtension-isApplied" name="isApplied" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-ElementExtension-isRequired" name="isRequired" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-ElementExtension-base" name="base" type="pivot-Element" isOrdered="true" association="pivot-A_ownedExtensions_base"/>
-    <ownedAttribute xmi:id="pivot-ElementExtension-stereotype" name="stereotype" type="pivot-Stereotype" isOrdered="true" association="pivot-A_stereotype_ElementExtension"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-EnumLiteralExp" name="EnumLiteralExp">
-    <generalization xmi:id="__3vXw8JdEeShyISVl59OvA" general="pivot-LiteralExp"/>
-    <ownedAttribute xmi:id="pivot-EnumLiteralExp-referredLiteral" name="referredLiteral" type="pivot-EnumerationLiteral" isOrdered="true"
-        association="pivot-A_referredLiteral_EnumLiteralExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXxcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Enumeration" name="Enumeration">
-    <generalization xmi:id="__3vXzMJdEeShyISVl59OvA" general="pivot-DataType"/>
-    <ownedAttribute xmi:id="pivot-Enumeration-ownedLiterals" name="ownedLiterals" type="pivot-EnumerationLiteral" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedLiterals_owningEnumeration">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXzsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXz8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-EnumerationLiteral" name="EnumerationLiteral">
-    <generalization xmi:id="__3vXx8JdEeShyISVl59OvA" general="pivot-InstanceSpecification"/>
-    <ownedAttribute xmi:id="pivot-EnumerationLiteral-value" name="value" visibility="public" type="pivot-Integer" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXycJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-EnumerationLiteral-owningEnumeration" name="owningEnumeration" type="pivot-Enumeration" isOrdered="true"
-        association="pivot-A_ownedLiterals_owningEnumeration"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ExpressionInOCL" name="ExpressionInOCL">
-    <generalization xmi:id="__3vX1MJdEeShyISVl59OvA" general="pivot-LanguageExpression"/>
-    <ownedAttribute xmi:id="pivot-ExpressionInOCL-ownedBody" name="ownedBody" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedBody_ExpressionInOCL">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX1sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ExpressionInOCL-ownedContext" name="ownedContext" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedContext_ExpressionInOCL">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX2MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ExpressionInOCL-ownedParameters" name="ownedParameters" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedParameters_ExpressionInOCL">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX2sJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vX28JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-ExpressionInOCL-ownedResult" name="ownedResult" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedResult_ExpressionInOCL">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX3cJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Feature" name="Feature" isAbstract="true">
-    <generalization xmi:id="__3vVXsJdEeShyISVl59OvA" general="pivot-TypedElement"/>
-    <ownedAttribute xmi:id="pivot-Feature-implementation" name="implementation" visibility="public" type="pivot-LibraryFeature" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVYMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Feature-implementationClass" name="implementationClass" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVYsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Feature-isStatic" name="isStatic" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-FeatureCallExp" name="FeatureCallExp" isAbstract="true">
-    <generalization xmi:id="__3vW_cJdEeShyISVl59OvA" general="pivot-CallExp"/>
-    <ownedAttribute xmi:id="pivot-FeatureCallExp-isPre" name="isPre" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-FinalState" name="FinalState">
-    <generalization xmi:id="__3vX88JdEeShyISVl59OvA" general="pivot-State"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-IfExp" name="IfExp">
-    <generalization xmi:id="__3vX9cJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-IfExp-ownedCondition" name="ownedCondition" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedCondition_IfExp"/>
-    <ownedAttribute xmi:id="pivot-IfExp-ownedElse" name="ownedElse" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedElse_IfExp"/>
-    <ownedAttribute xmi:id="pivot-IfExp-ownedThen" name="ownedThen" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedThen_IfExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Import" name="Import">
-    <generalization xmi:id="__3vXhsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Import-importedNamespace" name="importedNamespace" type="pivot-Namespace" isOrdered="true" association="pivot-A_importedNamespace_Import"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-InstanceSpecification" name="InstanceSpecification">
-    <generalization xmi:id="__3vWtsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-InstanceSpecification-classes" name="classes" type="pivot-Class" association="pivot-A_classes_InstanceSpecification">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWuMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWucJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-InstanceSpecification-ownedSlots" name="ownedSlots" type="pivot-Slot" aggregation="composite" association="pivot-A_ownedSlots_owningInstance">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWu8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWvMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-InstanceSpecification-ownedSpecification" name="ownedSpecification" type="pivot-LanguageExpression"
-        isOrdered="true" aggregation="composite" association="pivot-A_ownedSpecification_InstanceSpecification">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWvsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-InstanceSpecification-owningPackage" name="owningPackage" type="pivot-Package" isOrdered="true" association="pivot-A_ownedInstances_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWwMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-IntegerLiteralExp" name="IntegerLiteralExp">
-    <generalization xmi:id="__3vYAMJdEeShyISVl59OvA" general="pivot-NumericLiteralExp"/>
-    <ownedAttribute xmi:id="pivot-IntegerLiteralExp-integerSymbol" name="integerSymbol" visibility="public" type="pivot-Integer" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-InvalidLiteralExp" name="InvalidLiteralExp">
-    <generalization xmi:id="__3vYBcJdEeShyISVl59OvA" general="pivot-LiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-InvalidType" name="InvalidType">
-    <generalization xmi:id="__3vYB8JdEeShyISVl59OvA" general="pivot-Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-IterateExp" name="IterateExp">
-    <generalization xmi:id="__3vYCcJdEeShyISVl59OvA" general="pivot-LoopExp"/>
-    <ownedAttribute xmi:id="pivot-IterateExp-ownedResult" name="ownedResult" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedResult_IterateExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYC8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vYDMJdEeShyISVl59OvA" client="pivot-IterateExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Iteration" name="Iteration">
-    <generalization xmi:id="__3vYGsJdEeShyISVl59OvA" general="pivot-Operation"/>
-    <ownedAttribute xmi:id="pivot-Iteration-ownedAccumulators" name="ownedAccumulators" type="pivot-Parameter" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedAccumulators_Iteration">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYHMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYHcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Iteration-ownedIterators" name="ownedIterators" type="pivot-Parameter" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedIterators_Iteration">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYH8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYIMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-IteratorExp" name="IteratorExp">
-    <generalization xmi:id="__3vYK8JdEeShyISVl59OvA" general="pivot-LoopExp"/>
-    <interfaceRealization xmi:id="__3vYLMJdEeShyISVl59OvA" client="pivot-IteratorExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-LambdaType" name="LambdaType">
-    <generalization xmi:id="__3vYLsJdEeShyISVl59OvA" general="pivot-DataType"/>
-    <ownedAttribute xmi:id="pivot-LambdaType-contextType" name="contextType" type="pivot-Type" isOrdered="true" association="pivot-A_contextType_LambdaType"/>
-    <ownedAttribute xmi:id="pivot-LambdaType-parameterType" name="parameterType" type="pivot-Type" isOrdered="true" isUnique="false" association="pivot-A_parameterType_LambdaType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYMcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYMsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-LambdaType-resultType" name="resultType" type="pivot-Type" isOrdered="true" association="pivot-A_resultType_LambdaType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-LanguageExpression" name="LanguageExpression" isAbstract="true">
-    <generalization xmi:id="__3vVLsJdEeShyISVl59OvA" general="pivot-ValueSpecification"/>
-    <ownedAttribute xmi:id="pivot-LanguageExpression-body" name="body" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVMMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-LanguageExpression-language" name="language" visibility="public" type="pivot-String" isOrdered="true"
-        isReadOnly="true" isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-LanguageExpression-owningConstraint" name="owningConstraint" type="pivot-Constraint" isOrdered="true"
-        association="pivot-A_ownedSpecification_owningConstraint">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVM8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-LetExp" name="LetExp">
-    <generalization xmi:id="__3vYO8JdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-LetExp-ownedIn" name="ownedIn" type="pivot-OCLExpression" isOrdered="true" aggregation="composite" association="pivot-A_ownedIn_LetExp"/>
-    <ownedAttribute xmi:id="pivot-LetExp-ownedVariable" name="ownedVariable" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedVariable_LetExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Library" name="Library">
-    <generalization xmi:id="__3vYQ8JdEeShyISVl59OvA" general="pivot-Package"/>
-    <ownedAttribute xmi:id="pivot-Library-ownedPrecedences" name="ownedPrecedences" type="pivot-Precedence" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedPrecedences_Library">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYRcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYRsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-LiteralExp" name="LiteralExp" isAbstract="true">
-    <generalization xmi:id="__3vXKcJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-LoopExp" name="LoopExp" isAbstract="true">
-    <generalization xmi:id="__3vYDsJdEeShyISVl59OvA" general="pivot-CallExp"/>
-    <ownedAttribute xmi:id="pivot-LoopExp-ownedBody" name="ownedBody" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedBody_LoopExp"/>
-    <ownedAttribute xmi:id="pivot-LoopExp-ownedIterators" name="ownedIterators" type="pivot-Variable" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedIterators_LoopExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYEcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYEsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-LoopExp-referredIteration" name="referredIteration" type="pivot-Iteration" isOrdered="true" association="pivot-A_referredIteration_LoopExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYFMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-MessageExp" name="MessageExp">
-    <generalization xmi:id="__3vYSsJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-MessageExp-ownedArguments" name="ownedArguments" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedArguments_MessageExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYTMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYTcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-MessageExp-ownedCalledOperation" name="ownedCalledOperation" type="pivot-CallOperationAction" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedCalledOperation_MessageExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYT8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-MessageExp-ownedSentSignal" name="ownedSentSignal" type="pivot-SendSignalAction" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedSentSignal_MessageExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYUcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-MessageExp-ownedTarget" name="ownedTarget" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedTarget_MessageExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-MessageType" name="MessageType">
-    <generalization xmi:id="__3vYY8JdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-MessageType-referredOperation" name="referredOperation" type="pivot-Operation" isOrdered="true" association="pivot-A_referredOperation_MessageType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYZcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-MessageType-referredSignal" name="referredSignal" type="pivot-Signal" isOrdered="true" association="pivot-A_referredSignal_MessageType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYZ8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Model" name="Model">
-    <generalization xmi:id="__3vXfMJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <ownedAttribute xmi:id="pivot-Model-externalURI" name="externalURI" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXfsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Model-ownedImports" name="ownedImports" type="pivot-Import" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedImports_Model">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXgMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXgcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Model-ownedPackages" name="ownedPackages" type="pivot-Package" aggregation="composite" association="pivot-A_ownedPackages_Model">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXg8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vXhMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-NamedElement" name="NamedElement" isAbstract="true">
-    <generalization xmi:id="__3vUzcJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-NamedElement-name" name="name" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vUz8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vU0MJdEeShyISVl59OvA" client="pivot-NamedElement" supplier="pivot-Nameable" contract="pivot-Nameable"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Namespace" name="Namespace" isAbstract="true">
-    <generalization xmi:id="__3vVEcJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Namespace-ownedConstraints" name="ownedConstraints" type="pivot-Constraint" aggregation="composite"
-        association="pivot-A_ownedConstraints_Namespace">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVE8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVFMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-NavigationCallExp" name="NavigationCallExp" isAbstract="true">
-    <generalization xmi:id="__3vW9sJdEeShyISVl59OvA" general="pivot-FeatureCallExp"/>
-    <ownedAttribute xmi:id="pivot-NavigationCallExp-navigationSource" name="navigationSource" type="pivot-Property" isOrdered="true" association="pivot-A_navigationSource_NavigationCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vW-MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-NavigationCallExp-qualifiers" name="qualifiers" type="pivot-OCLExpression" isOrdered="true" association="pivot-A_qualifiers_NavigationCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vW-sJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vW-8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-NullLiteralExp" name="NullLiteralExp">
-    <generalization xmi:id="__3vYbsJdEeShyISVl59OvA" general="pivot-PrimitiveLiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-NumericLiteralExp" name="NumericLiteralExp" isAbstract="true">
-    <generalization xmi:id="__3vYA8JdEeShyISVl59OvA" general="pivot-PrimitiveLiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-OCLExpression" name="OCLExpression" isAbstract="true">
-    <generalization xmi:id="__3vXBsJdEeShyISVl59OvA" general="pivot-TypedElement"/>
-    <ownedAttribute xmi:id="pivot-OCLExpression-typeValue" name="typeValue" type="pivot-Type" isOrdered="true" association="pivot-A_typeValue_OCLExpression">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXCMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Operation" name="Operation">
-    <generalization xmi:id="__3vVQsJdEeShyISVl59OvA" general="pivot-Feature"/>
-    <generalization xmi:id="__3vVQ8JdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <generalization xmi:id="__3vVRMJdEeShyISVl59OvA" general="pivot-TemplateableElement"/>
-    <ownedAttribute xmi:id="pivot-Operation-isInvalidating" name="isInvalidating" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Operation-isTypeof" name="isTypeof" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Operation-isValidating" name="isValidating" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Operation-bodyExpression" name="bodyExpression" type="pivot-LanguageExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_bodyExpression_Operation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVScJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-ownedParameters" name="ownedParameters" type="pivot-Parameter" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedParameters_owningOperation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVS8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVTMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-ownedPostconditions" name="ownedPostconditions" type="pivot-Constraint" aggregation="composite"
-        association="pivot-A_ownedPostconditions_owningPostContext">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVTsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVT8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-ownedPreconditions" name="ownedPreconditions" type="pivot-Constraint" aggregation="composite"
-        association="pivot-A_ownedPreconditions_owningPreContext">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVUcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVUsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-owningClass" name="owningClass" type="pivot-Class" isOrdered="true" association="pivot-A_ownedOperations_owningClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVVMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-precedence" name="precedence" type="pivot-Precedence" isOrdered="true" association="pivot-A_precedence_Operation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVVsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-raisedExceptions" name="raisedExceptions" type="pivot-Type" association="pivot-A_raisedExceptions_Operation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVWMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVWcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Operation-redefinedOperations" name="redefinedOperations" type="pivot-Operation" association="pivot-A_redefinedOperations_Operation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVW8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVXMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-OperationCallExp" name="OperationCallExp">
-    <generalization xmi:id="__3vYcMJdEeShyISVl59OvA" general="pivot-FeatureCallExp"/>
-    <ownedAttribute xmi:id="pivot-OperationCallExp-ownedArguments" name="ownedArguments" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedArguments_OperationCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYcsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYc8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-OperationCallExp-referredOperation" name="referredOperation" type="pivot-Operation" isOrdered="true"
-        association="pivot-A_referredOperation_OperationCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYdcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vYdsJdEeShyISVl59OvA" client="pivot-OperationCallExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-OppositePropertyCallExp" name="OppositePropertyCallExp">
-    <generalization xmi:id="__3vYfMJdEeShyISVl59OvA" general="pivot-NavigationCallExp"/>
-    <ownedAttribute xmi:id="pivot-OppositePropertyCallExp-referredProperty" name="referredProperty" type="pivot-Property" isOrdered="true"
-        association="pivot-A_referredProperty_OppositePropertyCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYfsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-OrderedSetType" name="OrderedSetType">
-    <generalization xmi:id="__3vYgsJdEeShyISVl59OvA" general="pivot-CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-OrphanCompletePackage" name="OrphanCompletePackage">
-    <generalization xmi:id="__3vXbcJdEeShyISVl59OvA" general="pivot-CompletePackage"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Package" name="Package">
-    <generalization xmi:id="__3vWnMJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <ownedAttribute xmi:id="pivot-Package-URI" name="URI" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWnsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-nsPrefix" name="nsPrefix" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWoMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-importedPackages" name="importedPackages" type="pivot-Package" association="pivot-A_importedPackages_Package">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWosJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWo8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-ownedClasses" name="ownedClasses" type="pivot-Class" aggregation="composite" association="pivot-A_ownedClasses_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWpcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWpsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-ownedInstances" name="ownedInstances" type="pivot-InstanceSpecification" aggregation="composite"
-        association="pivot-A_ownedInstances_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWqMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWqcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-ownedPackages" name="ownedPackages" type="pivot-Package" aggregation="composite" association="pivot-A_ownedPackages_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWq8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWrMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-owningPackage" name="owningPackage" type="pivot-Package" isOrdered="true" association="pivot-A_ownedPackages_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWrsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Package-ownedProfileApplications" name="ownedProfileApplications" type="pivot-ProfileApplication" aggregation="composite"
-        association="pivot-A_ownedProfileApplications_owningPackage">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWsMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWscJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Parameter" name="Parameter">
-    <generalization xmi:id="__3vVqsJdEeShyISVl59OvA" general="pivot-VariableDeclaration"/>
-    <ownedAttribute xmi:id="pivot-Parameter-isTypeof" name="isTypeof" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Parameter-owningOperation" name="owningOperation" type="pivot-Operation" isOrdered="true" association="pivot-A_ownedParameters_owningOperation">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVrcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Precedence" name="Precedence">
-    <generalization xmi:id="__3vVucJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Precedence-associativity" name="associativity" visibility="public" type="pivot-AssociativityKind" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVu8JdEeShyISVl59OvA"/>
-      <defaultValue xmi:type="uml:InstanceValue" xmi:id="__3vVvMJdEeShyISVl59OvA" type="pivot-AssociativityKind" instance="__3vUksJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Precedence-order" name="order" visibility="public" type="pivot-Integer" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-PrimitiveCompletePackage" name="PrimitiveCompletePackage">
-    <generalization xmi:id="__3vXkcJdEeShyISVl59OvA" general="pivot-CompletePackage"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-PrimitiveLiteralExp" name="PrimitiveLiteralExp" isAbstract="true">
-    <generalization xmi:id="__3vXJ8JdEeShyISVl59OvA" general="pivot-LiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-PrimitiveType" name="PrimitiveType">
-    <generalization xmi:id="__3vYhcJdEeShyISVl59OvA" general="pivot-DataType"/>
-    <ownedAttribute xmi:id="pivot-PrimitiveType-coercions" name="coercions" type="pivot-Operation" isOrdered="true" association="pivot-A_coercions_PrimitiveType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYh8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYiMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Profile" name="Profile">
-    <generalization xmi:id="__3vW2cJdEeShyISVl59OvA" general="pivot-Package"/>
-    <ownedAttribute xmi:id="pivot-Profile-profileApplications" name="profileApplications" type="pivot-ProfileApplication" association="pivot-A_profileApplications_appliedProfile">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vW28JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vW3MJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ProfileApplication" name="ProfileApplication">
-    <generalization xmi:id="__3vW1MJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-ProfileApplication-isStrict" name="isStrict" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-ProfileApplication-appliedProfile" name="appliedProfile" type="pivot-Profile" isOrdered="true" association="pivot-A_profileApplications_appliedProfile"/>
-    <ownedAttribute xmi:id="pivot-ProfileApplication-owningPackage" name="owningPackage" type="pivot-Package" isOrdered="true" association="pivot-A_ownedProfileApplications_owningPackage"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Property" name="Property">
-    <generalization xmi:id="__3vWZsJdEeShyISVl59OvA" general="pivot-Feature"/>
-    <ownedAttribute xmi:id="pivot-Property-defaultValue" name="defaultValue" visibility="public" type="pivot-Object" isOrdered="true"
-        isDerived="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWaMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-defaultValueString" name="defaultValueString" visibility="public" type="pivot-String" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWasJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-isComposite" name="isComposite" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isDerived" name="isDerived" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isID" name="isID" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isImplicit" name="isImplicit" visibility="public" type="pivot-Boolean" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWb8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-isReadOnly" name="isReadOnly" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isResolveProxies" name="isResolveProxies" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isTransient" name="isTransient" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isUnsettable" name="isUnsettable" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-isVolatile" name="isVolatile" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-Property-associationClass" name="associationClass" type="pivot-AssociationClass" isOrdered="true" association="pivot-A_unownedAttributes_associationClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWdsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-keys" name="keys" type="pivot-Property" association="pivot-A_keys_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWeMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWecJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-opposite" name="opposite" type="pivot-Property" isOrdered="true" association="pivot-A_opposite_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWe8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-ownedExpression" name="ownedExpression" type="pivot-LanguageExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedExpression_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWfcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-owningClass" name="owningClass" type="pivot-Class" isOrdered="true" association="pivot-A_ownedProperties_owningClass">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWf8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-redefinedProperties" name="redefinedProperties" type="pivot-Property" association="pivot-A_redefinedProperties_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWgcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWgsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-referredProperty" name="referredProperty" type="pivot-Property" isOrdered="true" association="pivot-A_referredProperty_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWhMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Property-subsettedProperty" name="subsettedProperty" type="pivot-Property" association="pivot-A_subsettedProperty_Property">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWhsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWh8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-PropertyCallExp" name="PropertyCallExp">
-    <generalization xmi:id="__3vYjMJdEeShyISVl59OvA" general="pivot-NavigationCallExp"/>
-    <ownedAttribute xmi:id="pivot-PropertyCallExp-referredProperty" name="referredProperty" type="pivot-Property" isOrdered="true" association="pivot-A_referredProperty_PropertyCallExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYjsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vYj8JdEeShyISVl59OvA" client="pivot-PropertyCallExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Pseudostate" name="Pseudostate">
-    <generalization xmi:id="__3vWLMJdEeShyISVl59OvA" general="pivot-Vertex"/>
-    <ownedAttribute xmi:id="pivot-Pseudostate-kind" name="kind" visibility="public" type="pivot-PseudostateKind" isOrdered="true">
-      <defaultValue xmi:type="uml:InstanceValue" xmi:id="__3vWLsJdEeShyISVl59OvA" type="pivot-PseudostateKind" instance="__3vUqcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Pseudostate-owningState" name="owningState" type="pivot-State" isOrdered="true" association="pivot-A_ownedConnectionPoints_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWMMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Pseudostate-owningStateMachine" name="owningStateMachine" type="pivot-StateMachine" isOrdered="true"
-        association="pivot-A_ownedConnectionPoints_owningStateMachine">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWMsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-RealLiteralExp" name="RealLiteralExp">
-    <generalization xmi:id="__3vYk8JdEeShyISVl59OvA" general="pivot-NumericLiteralExp"/>
-    <ownedAttribute xmi:id="pivot-RealLiteralExp-realSymbol" name="realSymbol" visibility="public" type="pivot-Real" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Region" name="Region">
-    <generalization xmi:id="__3vWCsJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <ownedAttribute xmi:id="pivot-Region-extendedRegion" name="extendedRegion" type="pivot-Region" isOrdered="true" association="pivot-A_extendedRegion_Region">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWDMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Region-ownedSubvertexes" name="ownedSubvertexes" type="pivot-Vertex" aggregation="composite" association="pivot-A_ownedSubvertexes_owningRegion">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWDsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWD8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Region-ownedTransitions" name="ownedTransitions" type="pivot-Transition" aggregation="composite" association="pivot-A_ownedTransitions_owningRegion">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWEcJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWEsJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Region-owningState" name="owningState" type="pivot-State" isOrdered="true" association="pivot-A_ownedRegions_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWFMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Region-owningStateMachine" name="owningStateMachine" type="pivot-StateMachine" isOrdered="true" association="pivot-A_ownedRegions_owningStateMachine">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWFsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-SelfType" name="SelfType">
-    <generalization xmi:id="__3vYlsJdEeShyISVl59OvA" general="pivot-Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-SendSignalAction" name="SendSignalAction">
-    <generalization xmi:id="__3vYWMJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-SendSignalAction-signal" name="signal" type="pivot-Signal" isOrdered="true" association="pivot-A_signal_SendSignalAction"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-SequenceType" name="SequenceType">
-    <generalization xmi:id="__3vYmMJdEeShyISVl59OvA" general="pivot-CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-SetType" name="SetType">
-    <generalization xmi:id="__3vYmsJdEeShyISVl59OvA" general="pivot-CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Signal" name="Signal">
-    <generalization xmi:id="__3vYW8JdEeShyISVl59OvA" general="pivot-Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Slot" name="Slot">
-    <generalization xmi:id="__3vWxMJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-Slot-definingProperty" name="definingProperty" type="pivot-Property" isOrdered="true" association="pivot-A_definingProperty_Slot"/>
-    <ownedAttribute xmi:id="pivot-Slot-ownedValues" name="ownedValues" type="pivot-ValueSpecification" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedValues_Slot">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWx8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWyMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Slot-owningInstance" name="owningInstance" type="pivot-InstanceSpecification" isOrdered="true" association="pivot-A_ownedSlots_owningInstance"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-StandardLibrary" name="StandardLibrary">
-    <generalization xmi:id="__3vXd8JdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-StandardLibrary-owningCompleteEnvironment" name="owningCompleteEnvironment" type="pivot-CompleteEnvironment"
-        isOrdered="true" association="pivot-A_ownedStandardLibrary_owningCompleteEnvironment">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vXecJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-State" name="State">
-    <generalization xmi:id="__3vVxcJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <generalization xmi:id="__3vVxsJdEeShyISVl59OvA" general="pivot-Vertex"/>
-    <ownedAttribute xmi:id="pivot-State-ownedDeferrableTriggers" name="ownedDeferrableTriggers" type="pivot-Trigger" aggregation="composite"
-        association="pivot-A_ownedDeferrableTriggers_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVyMJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVycJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedRegions" name="ownedRegions" type="pivot-Region" aggregation="composite" association="pivot-A_ownedRegions_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVy8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVzMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedConnectionPoints" name="ownedConnectionPoints" type="pivot-Pseudostate" aggregation="composite"
-        association="pivot-A_ownedConnectionPoints_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVzsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVz8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-submachines" name="submachines" type="pivot-StateMachine" isOrdered="true" association="pivot-A_submachines_submachineStates">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV0cJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-isComposite" name="isComposite" visibility="public" type="pivot-Boolean" isOrdered="true" isReadOnly="true"
-        isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-State-isOrthogonal" name="isOrthogonal" visibility="public" type="pivot-Boolean" isOrdered="true" isReadOnly="true"
-        isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-State-isSimple" name="isSimple" visibility="public" type="pivot-Boolean" isOrdered="true" isReadOnly="true"
-        isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-State-isSubmachineState" name="isSubmachineState" visibility="public" type="pivot-Boolean" isOrdered="true"
-        isReadOnly="true" isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-State-ownedConnections" name="ownedConnections" type="pivot-ConnectionPointReference" aggregation="composite"
-        association="pivot-A_ownedConnections_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV18JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vV2MJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedDoActivity" name="ownedDoActivity" type="pivot-Behavior" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedDoActivity_State">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV2sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedEntry" name="ownedEntry" type="pivot-Behavior" isOrdered="true" aggregation="composite" association="pivot-A_ownedEntry_State">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV3MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedExit" name="ownedExit" type="pivot-Behavior" isOrdered="true" aggregation="composite" association="pivot-A_ownedExit_State">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV3sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-ownedStateInvariant" name="ownedStateInvariant" type="pivot-Constraint" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedStateInvariant_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV4MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-State-redefinedState" name="redefinedState" type="pivot-State" isOrdered="true" association="pivot-A_redefinedState_State">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV4sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-StateExp" name="StateExp">
-    <generalization xmi:id="__3vYnMJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-StateExp-referredState" name="referredState" type="pivot-State" isOrdered="true" association="pivot-A_referredState_StateExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYnsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-StateMachine" name="StateMachine">
-    <generalization xmi:id="__3vWHcJdEeShyISVl59OvA" general="pivot-Behavior"/>
-    <ownedAttribute xmi:id="pivot-StateMachine-extendedStateMachines" name="extendedStateMachines" type="pivot-StateMachine" association="pivot-A_extendedStateMachines_StateMachine">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWH8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWIMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-StateMachine-ownedConnectionPoints" name="ownedConnectionPoints" type="pivot-Pseudostate" aggregation="composite"
-        association="pivot-A_ownedConnectionPoints_owningStateMachine">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWIsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWI8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-StateMachine-ownedRegions" name="ownedRegions" type="pivot-Region" aggregation="composite" association="pivot-A_ownedRegions_owningStateMachine">
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWJcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-StateMachine-submachineStates" name="submachineStates" type="pivot-State" association="pivot-A_submachines_submachineStates">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWJ8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWKMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Stereotype" name="Stereotype">
-    <generalization xmi:id="__3vWXMJdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-Stereotype-ownedExtenders" name="ownedExtenders" type="pivot-StereotypeExtender" aggregation="composite"
-        association="pivot-A_ownedExtenders_owningStereotype">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWXsJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vWX8JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-StereotypeExtender" name="StereotypeExtender">
-    <generalization xmi:id="__3vWVsJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-StereotypeExtender-isRequired" name="isRequired" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-StereotypeExtender-class" name="class" type="pivot-Class" isOrdered="true" association="pivot-A_class_extenders"/>
-    <ownedAttribute xmi:id="pivot-StereotypeExtender-owningStereotype" name="owningStereotype" type="pivot-Stereotype" isOrdered="true"
-        association="pivot-A_ownedExtenders_owningStereotype"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-StringLiteralExp" name="StringLiteralExp">
-    <generalization xmi:id="__3vYosJdEeShyISVl59OvA" general="pivot-PrimitiveLiteralExp"/>
-    <ownedAttribute xmi:id="pivot-StringLiteralExp-stringSymbol" name="stringSymbol" visibility="public" type="pivot-String" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TemplateBinding" name="TemplateBinding">
-    <generalization xmi:id="__3vVbsJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-TemplateBinding-ownedSubstitutions" name="ownedSubstitutions" type="pivot-TemplateParameterSubstitution"
-        aggregation="composite" association="pivot-A_ownedSubstitutions_owningBinding">
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVcMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateBinding-owningElement" name="owningElement" type="pivot-TemplateableElement" isOrdered="true"
-        association="pivot-A_ownedBindings_owningElement"/>
-    <ownedAttribute xmi:id="pivot-TemplateBinding-templateSignature" name="templateSignature" type="pivot-TemplateSignature" isOrdered="true"
-        isReadOnly="true" isDerived="true" association="pivot-A_templateSignature_TemplateBinding"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TemplateParameter" name="TemplateParameter">
-    <generalization xmi:id="__3vVfcJdEeShyISVl59OvA" general="pivot-Type"/>
-    <ownedAttribute xmi:id="pivot-TemplateParameter-constrainingClasses" name="constrainingClasses" type="pivot-Class" association="pivot-A_constrainingClasses_TemplateParameter">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVf8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVgMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateParameter-lowerBound" name="lowerBound" type="pivot-Type" isOrdered="true" association="pivot-A_lowerBound_TemplateParameter">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVgsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateParameter-owningSignature" name="owningSignature" type="pivot-TemplateSignature" isOrdered="true"
-        association="pivot-A_ownedParameters_owningSignature"/>
-    <ownedAttribute xmi:id="pivot-TemplateParameter-upperBound" name="upperBound" type="pivot-Type" isOrdered="true" association="pivot-A_upperBound_TemplateParameter">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVhcJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TemplateParameterSubstitution" name="TemplateParameterSubstitution">
-    <generalization xmi:id="__3vVdMJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-TemplateParameterSubstitution-actual" name="actual" type="pivot-Type" isOrdered="true" association="pivot-A_actual_TemplateParameterSubstitution"/>
-    <ownedAttribute xmi:id="pivot-TemplateParameterSubstitution-formal" name="formal" type="pivot-TemplateParameter" isOrdered="true"
-        association="pivot-A_formal_TemplateParameterSubstitution"/>
-    <ownedAttribute xmi:id="pivot-TemplateParameterSubstitution-ownedWildcard" name="ownedWildcard" type="pivot-WildcardType" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedWildcard_TemplateParameterSubstitution">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVeMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateParameterSubstitution-owningBinding" name="owningBinding" type="pivot-TemplateBinding" isOrdered="true"
-        association="pivot-A_ownedSubstitutions_owningBinding"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TemplateSignature" name="TemplateSignature">
-    <generalization xmi:id="__3vVi8JdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-TemplateSignature-ownedParameters" name="ownedParameters" type="pivot-TemplateParameter" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedParameters_owningSignature">
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVjcJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateSignature-owningElement" name="owningElement" type="pivot-TemplateableElement" isOrdered="true"
-        association="pivot-A_ownedSignature_owningElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TemplateableElement" name="TemplateableElement" isAbstract="true">
-    <generalization xmi:id="__3vVZcJdEeShyISVl59OvA" general="pivot-Element"/>
-    <ownedAttribute xmi:id="pivot-TemplateableElement-ownedBindings" name="ownedBindings" type="pivot-TemplateBinding" aggregation="composite"
-        association="pivot-A_ownedBindings_owningElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVZ8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vVaMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateableElement-ownedSignature" name="ownedSignature" type="pivot-TemplateSignature" isOrdered="true"
-        aggregation="composite" association="pivot-A_ownedSignature_owningElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVasJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-TemplateableElement-unspecializedElement" name="unspecializedElement" type="pivot-TemplateableElement"
-        isOrdered="true" association="pivot-A_unspecializedElement_TemplateableElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVbMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Transition" name="Transition">
-    <generalization xmi:id="__3vV7sJdEeShyISVl59OvA" general="pivot-Namespace"/>
-    <ownedAttribute xmi:id="pivot-Transition-kind" name="kind" visibility="public" type="pivot-TransitionKind" isOrdered="true">
-      <defaultValue xmi:type="uml:InstanceValue" xmi:id="__3vV8MJdEeShyISVl59OvA" type="pivot-TransitionKind" instance="__3vUtMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Transition-ownedEffect" name="ownedEffect" type="pivot-Behavior" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedEffect_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV8sJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Transition-ownedGuard" name="ownedGuard" type="pivot-Constraint" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedGuard_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV9MJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Transition-ownedTriggers" name="ownedTriggers" type="pivot-Trigger" aggregation="composite" association="pivot-A_ownedTriggers_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV9sJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vV98JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Transition-owningRegion" name="owningRegion" type="pivot-Region" isOrdered="true" association="pivot-A_ownedTransitions_owningRegion"/>
-    <ownedAttribute xmi:id="pivot-Transition-source" name="source" type="pivot-Vertex" isOrdered="true" association="pivot-A_outgoingTransitions_source"/>
-    <ownedAttribute xmi:id="pivot-Transition-target" name="target" type="pivot-Vertex" isOrdered="true" association="pivot-A_target_incomingTransitions"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Trigger" name="Trigger">
-    <generalization xmi:id="__3vWAsJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Trigger-owningState" name="owningState" type="pivot-State" isOrdered="true" association="pivot-A_ownedDeferrableTriggers_owningState">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWBMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Trigger-owningTransition" name="owningTransition" type="pivot-Transition" isOrdered="true" association="pivot-A_ownedTriggers_owningTransition">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vWBsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TupleLiteralExp" name="TupleLiteralExp">
-    <generalization xmi:id="__3vYpcJdEeShyISVl59OvA" general="pivot-LiteralExp"/>
-    <ownedAttribute xmi:id="pivot-TupleLiteralExp-ownedParts" name="ownedParts" type="pivot-TupleLiteralPart" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedParts_TupleLiteralExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYp8JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vYqMJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TupleLiteralPart" name="TupleLiteralPart">
-    <generalization xmi:id="__3vYqsJdEeShyISVl59OvA" general="pivot-VariableDeclaration"/>
-    <ownedAttribute xmi:id="pivot-TupleLiteralPart-ownedInit" name="ownedInit" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedInit_TupleLiteralPart">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYrMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TupleType" name="TupleType">
-    <generalization xmi:id="__3vYssJdEeShyISVl59OvA" general="pivot-DataType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Type" name="Type" isAbstract="true">
-    <generalization xmi:id="__3vVPcJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TypeExp" name="TypeExp">
-    <generalization xmi:id="__3vYtMJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-TypeExp-referredType" name="referredType" type="pivot-Type" isOrdered="true" association="pivot-A_referredType_TypeExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYtsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vYt8JdEeShyISVl59OvA" client="pivot-TypeExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-TypedElement" name="TypedElement" isAbstract="true">
-    <generalization xmi:id="__3vVN8JdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-TypedElement-isMany" name="isMany" visibility="public" type="pivot-Boolean" isOrdered="true" isReadOnly="true"
-        isDerived="true"/>
-    <ownedAttribute xmi:id="pivot-TypedElement-isRequired" name="isRequired" visibility="public" type="pivot-Boolean" isOrdered="true"/>
-    <ownedAttribute xmi:id="pivot-TypedElement-type" name="type" type="pivot-Type" isOrdered="true" association="pivot-A_type_TypedElement">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVO8JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-UnlimitedNaturalLiteralExp" name="UnlimitedNaturalLiteralExp">
-    <generalization xmi:id="__3vYu8JdEeShyISVl59OvA" general="pivot-NumericLiteralExp"/>
-    <ownedAttribute xmi:id="pivot-UnlimitedNaturalLiteralExp-unlimitedNaturalSymbol" name="unlimitedNaturalSymbol" visibility="public"
-        type="pivot-UnlimitedNatural" isOrdered="true"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-UnspecifiedValueExp" name="UnspecifiedValueExp">
-    <generalization xmi:id="__3vYvsJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-ValueSpecification" name="ValueSpecification" isAbstract="true">
-    <generalization xmi:id="__3vVNcJdEeShyISVl59OvA" general="pivot-TypedElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Variable" name="Variable">
-    <generalization xmi:id="__3vX4cJdEeShyISVl59OvA" general="pivot-VariableDeclaration"/>
-    <ownedAttribute xmi:id="pivot-Variable-isImplicit" name="isImplicit" visibility="public" type="pivot-Boolean" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX48JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Variable-ownedInit" name="ownedInit" type="pivot-OCLExpression" isOrdered="true" aggregation="composite"
-        association="pivot-A_ownedInit_Variable">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX5cJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Variable-representedParameter" name="representedParameter" type="pivot-Parameter" isOrdered="true" association="pivot-A_representedParameter_Variable">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vX58JdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-VariableDeclaration" name="VariableDeclaration" isAbstract="true">
-    <generalization xmi:id="__3vVr8JdEeShyISVl59OvA" general="pivot-TypedElement"/>
-    <ownedAttribute xmi:id="pivot-VariableDeclaration-typeValue" name="typeValue" type="pivot-Type" isOrdered="true" association="pivot-A_typeValue_VariableDeclaration">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVscJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-VariableExp" name="VariableExp">
-    <generalization xmi:id="__3vYwMJdEeShyISVl59OvA" general="pivot-OCLExpression"/>
-    <ownedAttribute xmi:id="pivot-VariableExp-isImplicit" name="isImplicit" visibility="public" type="pivot-Boolean" isOrdered="true">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYwsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-VariableExp-referredVariable" name="referredVariable" type="pivot-VariableDeclaration" isOrdered="true"
-        association="pivot-A_referredVariable_VariableExp">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vYxMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <interfaceRealization xmi:id="__3vYxcJdEeShyISVl59OvA" client="pivot-VariableExp" supplier="pivot-ReferringElement" contract="pivot-ReferringElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-Vertex" name="Vertex" isAbstract="true">
-    <generalization xmi:id="__3vV5MJdEeShyISVl59OvA" general="pivot-NamedElement"/>
-    <ownedAttribute xmi:id="pivot-Vertex-incomingTransitions" name="incomingTransitions" type="pivot-Transition" isReadOnly="true" association="pivot-A_target_incomingTransitions">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV5sJdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vV58JdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Vertex-owningRegion" name="owningRegion" type="pivot-Region" isOrdered="true" association="pivot-A_ownedSubvertexes_owningRegion">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV6cJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-Vertex-outgoingTransitions" name="outgoingTransitions" type="pivot-Transition" isReadOnly="true" association="pivot-A_outgoingTransitions_source">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vV68JdEeShyISVl59OvA"/>
-      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__3vV7MJdEeShyISVl59OvA" value="*"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-VoidType" name="VoidType">
-    <generalization xmi:id="__3vYycJdEeShyISVl59OvA" general="pivot-Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Class" xmi:id="pivot-WildcardType" name="WildcardType">
-    <generalization xmi:id="__3vVlsJdEeShyISVl59OvA" general="pivot-Class"/>
-    <ownedAttribute xmi:id="pivot-WildcardType-lowerBound" name="lowerBound" type="pivot-Type" isOrdered="true" association="pivot-A_lowerBound_WildcardType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVmMJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-    <ownedAttribute xmi:id="pivot-WildcardType-upperBound" name="upperBound" type="pivot-Type" isOrdered="true" association="pivot-A_upperBound_WildcardType">
-      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__3vVmsJdEeShyISVl59OvA"/>
-    </ownedAttribute>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_actual_TemplateParameterSubstitution" name="A_actual_TemplateParameterSubstitution"
-      memberEnd="pivot-TemplateParameterSubstitution-actual pivot-A_actual_TemplateParameterSubstitution-Ppivot.A_actual_TemplateParameterSubstitution.Pnull">
-    <ownedEnd xmi:id="pivot-A_actual_TemplateParameterSubstitution-Ppivot.A_actual_TemplateParameterSubstitution.Pnull" type="pivot-TemplateParameterSubstitution"
-        association="pivot-A_actual_TemplateParameterSubstitution"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_annotatedElements_annotatingComments" name="A_annotatedElements_annotatingComments"
-      memberEnd="pivot-Comment-annotatedElements pivot-Element-annotatingComments"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_behavioralClass_DataType" name="A_behavioralClass_DataType" memberEnd="pivot-DataType-behavioralClass pivot-A_behavioralClass_DataType-Ppivot.A_behavioralClass_DataType.Pnull">
-    <ownedEnd xmi:id="pivot-A_behavioralClass_DataType-Ppivot.A_behavioralClass_DataType.Pnull" type="pivot-DataType" association="pivot-A_behavioralClass_DataType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_bodyExpression_Operation" name="A_bodyExpression_Operation" memberEnd="pivot-Operation-bodyExpression pivot-A_bodyExpression_Operation-Ppivot.A_bodyExpression_Operation.Pnull">
-    <ownedEnd xmi:id="pivot-A_bodyExpression_Operation-Ppivot.A_bodyExpression_Operation.Pnull" type="pivot-Operation" association="pivot-A_bodyExpression_Operation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_class_extenders" name="A_class_extenders" memberEnd="pivot-StereotypeExtender-class pivot-Class-extenders"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_classes_InstanceSpecification" name="A_classes_InstanceSpecification" memberEnd="pivot-InstanceSpecification-classes pivot-A_classes_InstanceSpecification-Ppivot.A_classes_InstanceSpecification.Pnull">
-    <ownedEnd xmi:id="pivot-A_classes_InstanceSpecification-Ppivot.A_classes_InstanceSpecification.Pnull" type="pivot-InstanceSpecification"
-        association="pivot-A_classes_InstanceSpecification"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_coercions_PrimitiveType" name="A_coercions_PrimitiveType" memberEnd="pivot-PrimitiveType-coercions pivot-A_coercions_PrimitiveType-Ppivot.A_coercions_PrimitiveType.Pnull">
-    <ownedEnd xmi:id="pivot-A_coercions_PrimitiveType-Ppivot.A_coercions_PrimitiveType.Pnull" type="pivot-PrimitiveType" association="pivot-A_coercions_PrimitiveType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_constrainedElements_Constraint" name="A_constrainedElements_Constraint"
-      memberEnd="pivot-Constraint-constrainedElements pivot-A_constrainedElements_Constraint-Ppivot.A_constrainedElements_Constraint.Pnull">
-    <ownedEnd xmi:id="pivot-A_constrainedElements_Constraint-Ppivot.A_constrainedElements_Constraint.Pnull" type="pivot-Constraint" association="pivot-A_constrainedElements_Constraint"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_constrainingClasses_TemplateParameter" name="A_constrainingClasses_TemplateParameter"
-      memberEnd="pivot-TemplateParameter-constrainingClasses pivot-A_constrainingClasses_TemplateParameter-Ppivot.A_constrainingClasses_TemplateParameter.Pnull">
-    <ownedEnd xmi:id="pivot-A_constrainingClasses_TemplateParameter-Ppivot.A_constrainingClasses_TemplateParameter.Pnull" type="pivot-TemplateParameter"
-        association="pivot-A_constrainingClasses_TemplateParameter"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_contextType_LambdaType" name="A_contextType_LambdaType" memberEnd="pivot-LambdaType-contextType pivot-A_contextType_LambdaType-Ppivot.A_contextType_LambdaType.Pnull">
-    <ownedEnd xmi:id="pivot-A_contextType_LambdaType-Ppivot.A_contextType_LambdaType.Pnull" type="pivot-LambdaType" association="pivot-A_contextType_LambdaType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_context_Constraint" name="A_context_Constraint" memberEnd="pivot-Constraint-context pivot-A_context_Constraint-Ppivot.A_context_Constraint.Pnull">
-    <ownedEnd xmi:id="pivot-A_context_Constraint-Ppivot.A_context_Constraint.Pnull" type="pivot-Constraint" association="pivot-A_context_Constraint"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_definingProperty_Slot" name="A_definingProperty_Slot" memberEnd="pivot-Slot-definingProperty pivot-A_definingProperty_Slot-Ppivot.A_definingProperty_Slot.Pnull">
-    <ownedEnd xmi:id="pivot-A_definingProperty_Slot-Ppivot.A_definingProperty_Slot.Pnull" type="pivot-Slot" association="pivot-A_definingProperty_Slot"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_elementType_CollectionType" name="A_elementType_CollectionType" memberEnd="pivot-CollectionType-elementType pivot-A_elementType_CollectionType-Ppivot.A_elementType_CollectionType.Pnull">
-    <ownedEnd xmi:id="pivot-A_elementType_CollectionType-Ppivot.A_elementType_CollectionType.Pnull" type="pivot-CollectionType" association="pivot-A_elementType_CollectionType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_entries_ConnectionPointReference" name="A_entries_ConnectionPointReference"
-      memberEnd="pivot-ConnectionPointReference-entries pivot-A_entries_ConnectionPointReference-Ppivot.A_entries_ConnectionPointReference.Pnull">
-    <ownedEnd xmi:id="pivot-A_entries_ConnectionPointReference-Ppivot.A_entries_ConnectionPointReference.Pnull" type="pivot-ConnectionPointReference"
-        association="pivot-A_entries_ConnectionPointReference"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_exits_ConnectionPointReference" name="A_exits_ConnectionPointReference"
-      memberEnd="pivot-ConnectionPointReference-exits pivot-A_exits_ConnectionPointReference-Ppivot.A_exits_ConnectionPointReference.Pnull">
-    <ownedEnd xmi:id="pivot-A_exits_ConnectionPointReference-Ppivot.A_exits_ConnectionPointReference.Pnull" type="pivot-ConnectionPointReference"
-        association="pivot-A_exits_ConnectionPointReference"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_extendedRegion_Region" name="A_extendedRegion_Region" memberEnd="pivot-Region-extendedRegion pivot-A_extendedRegion_Region-Ppivot.A_extendedRegion_Region.Pnull">
-    <ownedEnd xmi:id="pivot-A_extendedRegion_Region-Ppivot.A_extendedRegion_Region.Pnull" type="pivot-Region" association="pivot-A_extendedRegion_Region"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_extendedStateMachines_StateMachine" name="A_extendedStateMachines_StateMachine"
-      memberEnd="pivot-StateMachine-extendedStateMachines pivot-A_extendedStateMachines_StateMachine-Ppivot.A_extendedStateMachines_StateMachine.Pnull">
-    <ownedEnd xmi:id="pivot-A_extendedStateMachines_StateMachine-Ppivot.A_extendedStateMachines_StateMachine.Pnull" type="pivot-StateMachine"
-        association="pivot-A_extendedStateMachines_StateMachine"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_formal_TemplateParameterSubstitution" name="A_formal_TemplateParameterSubstitution"
-      memberEnd="pivot-TemplateParameterSubstitution-formal pivot-A_formal_TemplateParameterSubstitution-Ppivot.A_formal_TemplateParameterSubstitution.Pnull">
-    <ownedEnd xmi:id="pivot-A_formal_TemplateParameterSubstitution-Ppivot.A_formal_TemplateParameterSubstitution.Pnull" type="pivot-TemplateParameterSubstitution"
-        association="pivot-A_formal_TemplateParameterSubstitution"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_importedNamespace_Import" name="A_importedNamespace_Import" memberEnd="pivot-Import-importedNamespace pivot-A_importedNamespace_Import-Ppivot.A_importedNamespace_Import.Pnull">
-    <ownedEnd xmi:id="pivot-A_importedNamespace_Import-Ppivot.A_importedNamespace_Import.Pnull" type="pivot-Import" association="pivot-A_importedNamespace_Import"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_importedPackages_Package" name="A_importedPackages_Package" memberEnd="pivot-Package-importedPackages pivot-A_importedPackages_Package-Ppivot.A_importedPackages_Package.Pnull">
-    <ownedEnd xmi:id="pivot-A_importedPackages_Package-Ppivot.A_importedPackages_Package.Pnull" type="pivot-Package" association="pivot-A_importedPackages_Package"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_keys_Property" name="A_keys_Property" memberEnd="pivot-Property-keys pivot-A_keys_Property-Ppivot.A_keys_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_keys_Property-Ppivot.A_keys_Property.Pnull" type="pivot-Property" association="pivot-A_keys_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_lowerBound_TemplateParameter" name="A_lowerBound_TemplateParameter" memberEnd="pivot-TemplateParameter-lowerBound pivot-A_lowerBound_TemplateParameter-Ppivot.A_lowerBound_TemplateParameter.Pnull">
-    <ownedEnd xmi:id="pivot-A_lowerBound_TemplateParameter-Ppivot.A_lowerBound_TemplateParameter.Pnull" type="pivot-TemplateParameter"
-        association="pivot-A_lowerBound_TemplateParameter"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_lowerBound_WildcardType" name="A_lowerBound_WildcardType" memberEnd="pivot-WildcardType-lowerBound pivot-A_lowerBound_WildcardType-Ppivot.A_lowerBound_WildcardType.Pnull">
-    <ownedEnd xmi:id="pivot-A_lowerBound_WildcardType-Ppivot.A_lowerBound_WildcardType.Pnull" type="pivot-WildcardType" association="pivot-A_lowerBound_WildcardType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_metaType_DynamicElement" name="A_metaType_DynamicElement" memberEnd="pivot-DynamicElement-metaType pivot-A_metaType_DynamicElement-Ppivot.A_metaType_DynamicElement.Pnull">
-    <ownedEnd xmi:id="pivot-A_metaType_DynamicElement-Ppivot.A_metaType_DynamicElement.Pnull" type="pivot-DynamicElement" association="pivot-A_metaType_DynamicElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_navigationSource_NavigationCallExp" name="A_navigationSource_NavigationCallExp"
-      memberEnd="pivot-NavigationCallExp-navigationSource pivot-A_navigationSource_NavigationCallExp-Ppivot.A_navigationSource_NavigationCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_navigationSource_NavigationCallExp-Ppivot.A_navigationSource_NavigationCallExp.Pnull" type="pivot-NavigationCallExp"
-        association="pivot-A_navigationSource_NavigationCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_operation_CallOperationAction" name="A_operation_CallOperationAction" memberEnd="pivot-CallOperationAction-operation pivot-A_operation_CallOperationAction-Ppivot.A_operation_CallOperationAction.Pnull">
-    <ownedEnd xmi:id="pivot-A_operation_CallOperationAction-Ppivot.A_operation_CallOperationAction.Pnull" type="pivot-CallOperationAction"
-        association="pivot-A_operation_CallOperationAction"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_opposite_Property" name="A_opposite_Property" memberEnd="pivot-Property-opposite pivot-A_opposite_Property-Ppivot.A_opposite_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_opposite_Property-Ppivot.A_opposite_Property.Pnull" type="pivot-Property" association="pivot-A_opposite_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_orphanCompletePackage_CompleteModel" name="A_orphanCompletePackage_CompleteModel"
-      memberEnd="pivot-CompleteModel-orphanCompletePackage pivot-A_orphanCompletePackage_CompleteModel-Ppivot.A_orphanCompletePackage_CompleteModel.Pnull">
-    <ownedEnd xmi:id="pivot-A_orphanCompletePackage_CompleteModel-Ppivot.A_orphanCompletePackage_CompleteModel.Pnull" type="pivot-CompleteModel"
-        association="pivot-A_orphanCompletePackage_CompleteModel"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_outgoingTransitions_source" name="A_outgoingTransitions_source" memberEnd="pivot-Vertex-outgoingTransitions pivot-Transition-source"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedAccumulators_Iteration" name="A_ownedAccumulators_Iteration" memberEnd="pivot-Iteration-ownedAccumulators pivot-A_ownedAccumulators_Iteration-Ppivot.A_ownedAccumulators_Iteration.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedAccumulators_Iteration-Ppivot.A_ownedAccumulators_Iteration.Pnull" type="pivot-Iteration" association="pivot-A_ownedAccumulators_Iteration"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedAnnotations_Element" name="A_ownedAnnotations_Element" memberEnd="pivot-Element-ownedAnnotations pivot-A_ownedAnnotations_Element-Ppivot.A_ownedAnnotations_Element.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedAnnotations_Element-Ppivot.A_ownedAnnotations_Element.Pnull" type="pivot-Element" association="pivot-A_ownedAnnotations_Element"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedArguments_MessageExp" name="A_ownedArguments_MessageExp" memberEnd="pivot-MessageExp-ownedArguments pivot-A_ownedArguments_MessageExp-Ppivot.A_ownedArguments_MessageExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedArguments_MessageExp-Ppivot.A_ownedArguments_MessageExp.Pnull" type="pivot-MessageExp" association="pivot-A_ownedArguments_MessageExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedArguments_OperationCallExp" name="A_ownedArguments_OperationCallExp"
-      memberEnd="pivot-OperationCallExp-ownedArguments pivot-A_ownedArguments_OperationCallExp-Ppivot.A_ownedArguments_OperationCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedArguments_OperationCallExp-Ppivot.A_ownedArguments_OperationCallExp.Pnull" type="pivot-OperationCallExp"
-        association="pivot-A_ownedArguments_OperationCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedBehaviors_Class" name="A_ownedBehaviors_Class" memberEnd="pivot-Class-ownedBehaviors pivot-A_ownedBehaviors_Class-Ppivot.A_ownedBehaviors_Class.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedBehaviors_Class-Ppivot.A_ownedBehaviors_Class.Pnull" type="pivot-Class" association="pivot-A_ownedBehaviors_Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedBindings_owningElement" name="A_ownedBindings_owningElement" memberEnd="pivot-TemplateableElement-ownedBindings pivot-TemplateBinding-owningElement"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedBody_ExpressionInOCL" name="A_ownedBody_ExpressionInOCL" memberEnd="pivot-ExpressionInOCL-ownedBody pivot-A_ownedBody_ExpressionInOCL-Ppivot.A_ownedBody_ExpressionInOCL.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedBody_ExpressionInOCL-Ppivot.A_ownedBody_ExpressionInOCL.Pnull" type="pivot-ExpressionInOCL" association="pivot-A_ownedBody_ExpressionInOCL"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedBody_LoopExp" name="A_ownedBody_LoopExp" memberEnd="pivot-LoopExp-ownedBody pivot-A_ownedBody_LoopExp-Ppivot.A_ownedBody_LoopExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedBody_LoopExp-Ppivot.A_ownedBody_LoopExp.Pnull" type="pivot-LoopExp" association="pivot-A_ownedBody_LoopExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCalledOperation_MessageExp" name="A_ownedCalledOperation_MessageExp"
-      memberEnd="pivot-MessageExp-ownedCalledOperation pivot-A_ownedCalledOperation_MessageExp-Ppivot.A_ownedCalledOperation_MessageExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedCalledOperation_MessageExp-Ppivot.A_ownedCalledOperation_MessageExp.Pnull" type="pivot-MessageExp"
-        association="pivot-A_ownedCalledOperation_MessageExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedClasses_owningPackage" name="A_ownedClasses_owningPackage" memberEnd="pivot-Package-ownedClasses pivot-Class-owningPackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedComments_owningElement" name="A_ownedComments_owningElement" memberEnd="pivot-Element-ownedComments pivot-Comment-owningElement"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCompleteClasses_owningCompletePackage" name="A_ownedCompleteClasses_owningCompletePackage"
-      memberEnd="pivot-CompletePackage-ownedCompleteClasses pivot-CompleteClass-owningCompletePackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCompleteModel_owningCompleteEnvironment" name="A_ownedCompleteModel_owningCompleteEnvironment"
-      memberEnd="pivot-CompleteEnvironment-ownedCompleteModel pivot-CompleteModel-owningCompleteEnvironment"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCompletePackages_owningCompleteModel" name="A_ownedCompletePackages_owningCompleteModel"
-      memberEnd="pivot-CompleteModel-ownedCompletePackages pivot-CompletePackage-owningCompleteModel"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCompletePackages_owningCompletePackage" name="A_ownedCompletePackages_owningCompletePackage"
-      memberEnd="pivot-CompletePackage-ownedCompletePackages pivot-CompletePackage-owningCompletePackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedCondition_IfExp" name="A_ownedCondition_IfExp" memberEnd="pivot-IfExp-ownedCondition pivot-A_ownedCondition_IfExp-Ppivot.A_ownedCondition_IfExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedCondition_IfExp-Ppivot.A_ownedCondition_IfExp.Pnull" type="pivot-IfExp" association="pivot-A_ownedCondition_IfExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedConnectionPoints_owningState" name="A_ownedConnectionPoints_owningState"
-      memberEnd="pivot-State-ownedConnectionPoints pivot-Pseudostate-owningState"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedConnectionPoints_owningStateMachine" name="A_ownedConnectionPoints_owningStateMachine"
-      memberEnd="pivot-StateMachine-ownedConnectionPoints pivot-Pseudostate-owningStateMachine"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedConnections_owningState" name="A_ownedConnections_owningState" memberEnd="pivot-State-ownedConnections pivot-ConnectionPointReference-owningState"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedConstraints_Namespace" name="A_ownedConstraints_Namespace" memberEnd="pivot-Namespace-ownedConstraints pivot-A_ownedConstraints_Namespace-Ppivot.A_ownedConstraints_Namespace.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedConstraints_Namespace-Ppivot.A_ownedConstraints_Namespace.Pnull" type="pivot-Namespace" association="pivot-A_ownedConstraints_Namespace"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedContents_Annotation" name="A_ownedContents_Annotation" memberEnd="pivot-Annotation-ownedContents pivot-A_ownedContents_Annotation-Ppivot.A_ownedContents_Annotation.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedContents_Annotation-Ppivot.A_ownedContents_Annotation.Pnull" type="pivot-Annotation" association="pivot-A_ownedContents_Annotation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedContext_ExpressionInOCL" name="A_ownedContext_ExpressionInOCL" memberEnd="pivot-ExpressionInOCL-ownedContext pivot-A_ownedContext_ExpressionInOCL-Ppivot.A_ownedContext_ExpressionInOCL.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedContext_ExpressionInOCL-Ppivot.A_ownedContext_ExpressionInOCL.Pnull" type="pivot-ExpressionInOCL" association="pivot-A_ownedContext_ExpressionInOCL"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedDeferrableTriggers_owningState" name="A_ownedDeferrableTriggers_owningState"
-      memberEnd="pivot-State-ownedDeferrableTriggers pivot-Trigger-owningState"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedDetails_Annotation" name="A_ownedDetails_Annotation" memberEnd="pivot-Annotation-ownedDetails pivot-A_ownedDetails_Annotation-Ppivot.A_ownedDetails_Annotation.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedDetails_Annotation-Ppivot.A_ownedDetails_Annotation.Pnull" type="pivot-Annotation" association="pivot-A_ownedDetails_Annotation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedDoActivity_State" name="A_ownedDoActivity_State" memberEnd="pivot-State-ownedDoActivity pivot-A_ownedDoActivity_State-Ppivot.A_ownedDoActivity_State.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedDoActivity_State-Ppivot.A_ownedDoActivity_State.Pnull" type="pivot-State" association="pivot-A_ownedDoActivity_State"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedDynamicProperties_DynamicType" name="A_ownedDynamicProperties_DynamicType"
-      memberEnd="pivot-DynamicType-ownedDynamicProperties pivot-A_ownedDynamicProperties_DynamicType-Ppivot.A_ownedDynamicProperties_DynamicType.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedDynamicProperties_DynamicType-Ppivot.A_ownedDynamicProperties_DynamicType.Pnull" type="pivot-DynamicType"
-        association="pivot-A_ownedDynamicProperties_DynamicType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedEffect_owningTransition" name="A_ownedEffect_owningTransition" memberEnd="pivot-Transition-ownedEffect pivot-Behavior-owningTransition"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedElse_IfExp" name="A_ownedElse_IfExp" memberEnd="pivot-IfExp-ownedElse pivot-A_ownedElse_IfExp-Ppivot.A_ownedElse_IfExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedElse_IfExp-Ppivot.A_ownedElse_IfExp.Pnull" type="pivot-IfExp" association="pivot-A_ownedElse_IfExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedEntry_State" name="A_ownedEntry_State" memberEnd="pivot-State-ownedEntry pivot-A_ownedEntry_State-Ppivot.A_ownedEntry_State.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedEntry_State-Ppivot.A_ownedEntry_State.Pnull" type="pivot-State" association="pivot-A_ownedEntry_State"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedExit_State" name="A_ownedExit_State" memberEnd="pivot-State-ownedExit pivot-A_ownedExit_State-Ppivot.A_ownedExit_State.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedExit_State-Ppivot.A_ownedExit_State.Pnull" type="pivot-State" association="pivot-A_ownedExit_State"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedExpression_Property" name="A_ownedExpression_Property" memberEnd="pivot-Property-ownedExpression pivot-A_ownedExpression_Property-Ppivot.A_ownedExpression_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedExpression_Property-Ppivot.A_ownedExpression_Property.Pnull" type="pivot-Property" association="pivot-A_ownedExpression_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedExtenders_owningStereotype" name="A_ownedExtenders_owningStereotype"
-      memberEnd="pivot-Stereotype-ownedExtenders pivot-StereotypeExtender-owningStereotype"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedExtensions_base" name="A_ownedExtensions_base" memberEnd="pivot-Element-ownedExtensions pivot-ElementExtension-base"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedFirst_CollectionRange" name="A_ownedFirst_CollectionRange" memberEnd="pivot-CollectionRange-ownedFirst pivot-A_ownedFirst_CollectionRange-Ppivot.A_ownedFirst_CollectionRange.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedFirst_CollectionRange-Ppivot.A_ownedFirst_CollectionRange.Pnull" type="pivot-CollectionRange" association="pivot-A_ownedFirst_CollectionRange"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedGuard_owningTransition" name="A_ownedGuard_owningTransition" memberEnd="pivot-Transition-ownedGuard pivot-Constraint-owningTransition"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedImports_Model" name="A_ownedImports_Model" memberEnd="pivot-Model-ownedImports pivot-A_ownedImports_Model-Ppivot.A_ownedImports_Model.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedImports_Model-Ppivot.A_ownedImports_Model.Pnull" type="pivot-Model" association="pivot-A_ownedImports_Model"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedIn_LetExp" name="A_ownedIn_LetExp" memberEnd="pivot-LetExp-ownedIn pivot-A_ownedIn_LetExp-Ppivot.A_ownedIn_LetExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedIn_LetExp-Ppivot.A_ownedIn_LetExp.Pnull" type="pivot-LetExp" association="pivot-A_ownedIn_LetExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedInit_ConstructorPart" name="A_ownedInit_ConstructorPart" memberEnd="pivot-ConstructorPart-ownedInit pivot-A_ownedInit_ConstructorPart-Ppivot.A_ownedInit_ConstructorPart.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedInit_ConstructorPart-Ppivot.A_ownedInit_ConstructorPart.Pnull" type="pivot-ConstructorPart" association="pivot-A_ownedInit_ConstructorPart"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedInit_TupleLiteralPart" name="A_ownedInit_TupleLiteralPart" memberEnd="pivot-TupleLiteralPart-ownedInit pivot-A_ownedInit_TupleLiteralPart-Ppivot.A_ownedInit_TupleLiteralPart.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedInit_TupleLiteralPart-Ppivot.A_ownedInit_TupleLiteralPart.Pnull" type="pivot-TupleLiteralPart" association="pivot-A_ownedInit_TupleLiteralPart"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedInit_Variable" name="A_ownedInit_Variable" memberEnd="pivot-Variable-ownedInit pivot-A_ownedInit_Variable-Ppivot.A_ownedInit_Variable.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedInit_Variable-Ppivot.A_ownedInit_Variable.Pnull" type="pivot-Variable" association="pivot-A_ownedInit_Variable"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedInstances_owningPackage" name="A_ownedInstances_owningPackage" memberEnd="pivot-Package-ownedInstances pivot-InstanceSpecification-owningPackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedInvariants_Class" name="A_ownedInvariants_Class" memberEnd="pivot-Class-ownedInvariants pivot-A_ownedInvariants_Class-Ppivot.A_ownedInvariants_Class.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedInvariants_Class-Ppivot.A_ownedInvariants_Class.Pnull" type="pivot-Class" association="pivot-A_ownedInvariants_Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedItem_CollectionItem" name="A_ownedItem_CollectionItem" memberEnd="pivot-CollectionItem-ownedItem pivot-A_ownedItem_CollectionItem-Ppivot.A_ownedItem_CollectionItem.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedItem_CollectionItem-Ppivot.A_ownedItem_CollectionItem.Pnull" type="pivot-CollectionItem" association="pivot-A_ownedItem_CollectionItem"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedIterators_Iteration" name="A_ownedIterators_Iteration" memberEnd="pivot-Iteration-ownedIterators pivot-A_ownedIterators_Iteration-Ppivot.A_ownedIterators_Iteration.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedIterators_Iteration-Ppivot.A_ownedIterators_Iteration.Pnull" type="pivot-Iteration" association="pivot-A_ownedIterators_Iteration"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedIterators_LoopExp" name="A_ownedIterators_LoopExp" memberEnd="pivot-LoopExp-ownedIterators pivot-A_ownedIterators_LoopExp-Ppivot.A_ownedIterators_LoopExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedIterators_LoopExp-Ppivot.A_ownedIterators_LoopExp.Pnull" type="pivot-LoopExp" association="pivot-A_ownedIterators_LoopExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedLast_CollectionRange" name="A_ownedLast_CollectionRange" memberEnd="pivot-CollectionRange-ownedLast pivot-A_ownedLast_CollectionRange-Ppivot.A_ownedLast_CollectionRange.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedLast_CollectionRange-Ppivot.A_ownedLast_CollectionRange.Pnull" type="pivot-CollectionRange" association="pivot-A_ownedLast_CollectionRange"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedLiterals_owningEnumeration" name="A_ownedLiterals_owningEnumeration"
-      memberEnd="pivot-Enumeration-ownedLiterals pivot-EnumerationLiteral-owningEnumeration"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedOperations_owningClass" name="A_ownedOperations_owningClass" memberEnd="pivot-Class-ownedOperations pivot-Operation-owningClass"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedPackages_Model" name="A_ownedPackages_Model" memberEnd="pivot-Model-ownedPackages pivot-A_ownedPackages_Model-Ppivot.A_ownedPackages_Model.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedPackages_Model-Ppivot.A_ownedPackages_Model.Pnull" type="pivot-Model" association="pivot-A_ownedPackages_Model"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedPackages_owningPackage" name="A_ownedPackages_owningPackage" memberEnd="pivot-Package-ownedPackages pivot-Package-owningPackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParameters_ExpressionInOCL" name="A_ownedParameters_ExpressionInOCL"
-      memberEnd="pivot-ExpressionInOCL-ownedParameters pivot-A_ownedParameters_ExpressionInOCL-Ppivot.A_ownedParameters_ExpressionInOCL.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedParameters_ExpressionInOCL-Ppivot.A_ownedParameters_ExpressionInOCL.Pnull" type="pivot-ExpressionInOCL"
-        association="pivot-A_ownedParameters_ExpressionInOCL"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParameters_owningOperation" name="A_ownedParameters_owningOperation"
-      memberEnd="pivot-Operation-ownedParameters pivot-Parameter-owningOperation"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParameters_owningSignature" name="A_ownedParameters_owningSignature"
-      memberEnd="pivot-TemplateSignature-ownedParameters pivot-TemplateParameter-owningSignature"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParts_CollectionLiteralExp" name="A_ownedParts_CollectionLiteralExp"
-      memberEnd="pivot-CollectionLiteralExp-ownedParts pivot-A_ownedParts_CollectionLiteralExp-Ppivot.A_ownedParts_CollectionLiteralExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedParts_CollectionLiteralExp-Ppivot.A_ownedParts_CollectionLiteralExp.Pnull" type="pivot-CollectionLiteralExp"
-        association="pivot-A_ownedParts_CollectionLiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParts_ConstructorExp" name="A_ownedParts_ConstructorExp" memberEnd="pivot-ConstructorExp-ownedParts pivot-A_ownedParts_ConstructorExp-Ppivot.A_ownedParts_ConstructorExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedParts_ConstructorExp-Ppivot.A_ownedParts_ConstructorExp.Pnull" type="pivot-ConstructorExp" association="pivot-A_ownedParts_ConstructorExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedParts_TupleLiteralExp" name="A_ownedParts_TupleLiteralExp" memberEnd="pivot-TupleLiteralExp-ownedParts pivot-A_ownedParts_TupleLiteralExp-Ppivot.A_ownedParts_TupleLiteralExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedParts_TupleLiteralExp-Ppivot.A_ownedParts_TupleLiteralExp.Pnull" type="pivot-TupleLiteralExp" association="pivot-A_ownedParts_TupleLiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedPostconditions_owningPostContext" name="A_ownedPostconditions_owningPostContext"
-      memberEnd="pivot-Operation-ownedPostconditions pivot-Constraint-owningPostContext"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedPrecedences_Library" name="A_ownedPrecedences_Library" memberEnd="pivot-Library-ownedPrecedences pivot-A_ownedPrecedences_Library-Ppivot.A_ownedPrecedences_Library.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedPrecedences_Library-Ppivot.A_ownedPrecedences_Library.Pnull" type="pivot-Library" association="pivot-A_ownedPrecedences_Library"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedPreconditions_owningPreContext" name="A_ownedPreconditions_owningPreContext"
-      memberEnd="pivot-Operation-ownedPreconditions pivot-Constraint-owningPreContext"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedProfileApplications_owningPackage" name="A_ownedProfileApplications_owningPackage"
-      memberEnd="pivot-Package-ownedProfileApplications pivot-ProfileApplication-owningPackage"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedProperties_owningClass" name="A_ownedProperties_owningClass" memberEnd="pivot-Class-ownedProperties pivot-Property-owningClass"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedRegions_owningState" name="A_ownedRegions_owningState" memberEnd="pivot-State-ownedRegions pivot-Region-owningState"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedRegions_owningStateMachine" name="A_ownedRegions_owningStateMachine"
-      memberEnd="pivot-StateMachine-ownedRegions pivot-Region-owningStateMachine"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedResult_ExpressionInOCL" name="A_ownedResult_ExpressionInOCL" memberEnd="pivot-ExpressionInOCL-ownedResult pivot-A_ownedResult_ExpressionInOCL-Ppivot.A_ownedResult_ExpressionInOCL.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedResult_ExpressionInOCL-Ppivot.A_ownedResult_ExpressionInOCL.Pnull" type="pivot-ExpressionInOCL" association="pivot-A_ownedResult_ExpressionInOCL"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedResult_IterateExp" name="A_ownedResult_IterateExp" memberEnd="pivot-IterateExp-ownedResult pivot-A_ownedResult_IterateExp-Ppivot.A_ownedResult_IterateExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedResult_IterateExp-Ppivot.A_ownedResult_IterateExp.Pnull" type="pivot-IterateExp" association="pivot-A_ownedResult_IterateExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSentSignal_MessageExp" name="A_ownedSentSignal_MessageExp" memberEnd="pivot-MessageExp-ownedSentSignal pivot-A_ownedSentSignal_MessageExp-Ppivot.A_ownedSentSignal_MessageExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedSentSignal_MessageExp-Ppivot.A_ownedSentSignal_MessageExp.Pnull" type="pivot-MessageExp" association="pivot-A_ownedSentSignal_MessageExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSignature_owningElement" name="A_ownedSignature_owningElement" memberEnd="pivot-TemplateableElement-ownedSignature pivot-TemplateSignature-owningElement"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSlots_owningInstance" name="A_ownedSlots_owningInstance" memberEnd="pivot-InstanceSpecification-ownedSlots pivot-Slot-owningInstance"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSource_CallExp" name="A_ownedSource_CallExp" memberEnd="pivot-CallExp-ownedSource pivot-A_ownedSource_CallExp-Ppivot.A_ownedSource_CallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedSource_CallExp-Ppivot.A_ownedSource_CallExp.Pnull" type="pivot-CallExp" association="pivot-A_ownedSource_CallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSpecification_InstanceSpecification" name="A_ownedSpecification_InstanceSpecification"
-      memberEnd="pivot-InstanceSpecification-ownedSpecification pivot-A_ownedSpecification_InstanceSpecification-Ppivot.A_ownedSpecification_InstanceSpecification.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedSpecification_InstanceSpecification-Ppivot.A_ownedSpecification_InstanceSpecification.Pnull" type="pivot-InstanceSpecification"
-        association="pivot-A_ownedSpecification_InstanceSpecification"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSpecification_owningConstraint" name="A_ownedSpecification_owningConstraint"
-      memberEnd="pivot-Constraint-ownedSpecification pivot-LanguageExpression-owningConstraint"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedStandardLibrary_owningCompleteEnvironment" name="A_ownedStandardLibrary_owningCompleteEnvironment"
-      memberEnd="pivot-CompleteEnvironment-ownedStandardLibrary pivot-StandardLibrary-owningCompleteEnvironment"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedStateInvariant_owningState" name="A_ownedStateInvariant_owningState"
-      memberEnd="pivot-State-ownedStateInvariant pivot-Constraint-owningState"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSubstitutions_owningBinding" name="A_ownedSubstitutions_owningBinding"
-      memberEnd="pivot-TemplateBinding-ownedSubstitutions pivot-TemplateParameterSubstitution-owningBinding"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedSubvertexes_owningRegion" name="A_ownedSubvertexes_owningRegion" memberEnd="pivot-Region-ownedSubvertexes pivot-Vertex-owningRegion"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedTarget_MessageExp" name="A_ownedTarget_MessageExp" memberEnd="pivot-MessageExp-ownedTarget pivot-A_ownedTarget_MessageExp-Ppivot.A_ownedTarget_MessageExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedTarget_MessageExp-Ppivot.A_ownedTarget_MessageExp.Pnull" type="pivot-MessageExp" association="pivot-A_ownedTarget_MessageExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedThen_IfExp" name="A_ownedThen_IfExp" memberEnd="pivot-IfExp-ownedThen pivot-A_ownedThen_IfExp-Ppivot.A_ownedThen_IfExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedThen_IfExp-Ppivot.A_ownedThen_IfExp.Pnull" type="pivot-IfExp" association="pivot-A_ownedThen_IfExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedTransitions_owningRegion" name="A_ownedTransitions_owningRegion" memberEnd="pivot-Region-ownedTransitions pivot-Transition-owningRegion"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedTriggers_owningTransition" name="A_ownedTriggers_owningTransition"
-      memberEnd="pivot-Transition-ownedTriggers pivot-Trigger-owningTransition"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedValues_Slot" name="A_ownedValues_Slot" memberEnd="pivot-Slot-ownedValues pivot-A_ownedValues_Slot-Ppivot.A_ownedValues_Slot.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedValues_Slot-Ppivot.A_ownedValues_Slot.Pnull" type="pivot-Slot" association="pivot-A_ownedValues_Slot"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedVariable_LetExp" name="A_ownedVariable_LetExp" memberEnd="pivot-LetExp-ownedVariable pivot-A_ownedVariable_LetExp-Ppivot.A_ownedVariable_LetExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedVariable_LetExp-Ppivot.A_ownedVariable_LetExp.Pnull" type="pivot-LetExp" association="pivot-A_ownedVariable_LetExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_ownedWildcard_TemplateParameterSubstitution" name="A_ownedWildcard_TemplateParameterSubstitution"
-      memberEnd="pivot-TemplateParameterSubstitution-ownedWildcard pivot-A_ownedWildcard_TemplateParameterSubstitution-Ppivot.A_ownedWildcard_TemplateParameterSubstitution.Pnull">
-    <ownedEnd xmi:id="pivot-A_ownedWildcard_TemplateParameterSubstitution-Ppivot.A_ownedWildcard_TemplateParameterSubstitution.Pnull"
-        type="pivot-TemplateParameterSubstitution" association="pivot-A_ownedWildcard_TemplateParameterSubstitution"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_parameterType_LambdaType" name="A_parameterType_LambdaType" memberEnd="pivot-LambdaType-parameterType pivot-A_parameterType_LambdaType-Ppivot.A_parameterType_LambdaType.Pnull">
-    <ownedEnd xmi:id="pivot-A_parameterType_LambdaType-Ppivot.A_parameterType_LambdaType.Pnull" type="pivot-LambdaType" association="pivot-A_parameterType_LambdaType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_partialClasses_CompleteClass" name="A_partialClasses_CompleteClass" memberEnd="pivot-CompleteClass-partialClasses pivot-A_partialClasses_CompleteClass-Ppivot.A_partialClasses_CompleteClass.Pnull">
-    <ownedEnd xmi:id="pivot-A_partialClasses_CompleteClass-Ppivot.A_partialClasses_CompleteClass.Pnull" type="pivot-CompleteClass" association="pivot-A_partialClasses_CompleteClass"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_partialModels_CompleteModel" name="A_partialModels_CompleteModel" memberEnd="pivot-CompleteModel-partialModels pivot-A_partialModels_CompleteModel-Ppivot.A_partialModels_CompleteModel.Pnull">
-    <ownedEnd xmi:id="pivot-A_partialModels_CompleteModel-Ppivot.A_partialModels_CompleteModel.Pnull" type="pivot-CompleteModel" association="pivot-A_partialModels_CompleteModel"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_partialPackages_CompletePackage" name="A_partialPackages_CompletePackage"
-      memberEnd="pivot-CompletePackage-partialPackages pivot-A_partialPackages_CompletePackage-Ppivot.A_partialPackages_CompletePackage.Pnull">
-    <ownedEnd xmi:id="pivot-A_partialPackages_CompletePackage-Ppivot.A_partialPackages_CompletePackage.Pnull" type="pivot-CompletePackage"
-        association="pivot-A_partialPackages_CompletePackage"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_precedence_Operation" name="A_precedence_Operation" memberEnd="pivot-Operation-precedence pivot-A_precedence_Operation-Ppivot.A_precedence_Operation.Pnull">
-    <ownedEnd xmi:id="pivot-A_precedence_Operation-Ppivot.A_precedence_Operation.Pnull" type="pivot-Operation" association="pivot-A_precedence_Operation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_primitiveCompletePackage_CompleteModel" name="A_primitiveCompletePackage_CompleteModel"
-      memberEnd="pivot-CompleteModel-primitiveCompletePackage pivot-A_primitiveCompletePackage_CompleteModel-Ppivot.A_primitiveCompletePackage_CompleteModel.Pnull">
-    <ownedEnd xmi:id="pivot-A_primitiveCompletePackage_CompleteModel-Ppivot.A_primitiveCompletePackage_CompleteModel.Pnull" type="pivot-CompleteModel"
-        association="pivot-A_primitiveCompletePackage_CompleteModel"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_profileApplications_appliedProfile" name="A_profileApplications_appliedProfile"
-      memberEnd="pivot-Profile-profileApplications pivot-ProfileApplication-appliedProfile"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_qualifiers_NavigationCallExp" name="A_qualifiers_NavigationCallExp" memberEnd="pivot-NavigationCallExp-qualifiers pivot-A_qualifiers_NavigationCallExp-Ppivot.A_qualifiers_NavigationCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_qualifiers_NavigationCallExp-Ppivot.A_qualifiers_NavigationCallExp.Pnull" type="pivot-NavigationCallExp"
-        association="pivot-A_qualifiers_NavigationCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_raisedExceptions_Operation" name="A_raisedExceptions_Operation" memberEnd="pivot-Operation-raisedExceptions pivot-A_raisedExceptions_Operation-Ppivot.A_raisedExceptions_Operation.Pnull">
-    <ownedEnd xmi:id="pivot-A_raisedExceptions_Operation-Ppivot.A_raisedExceptions_Operation.Pnull" type="pivot-Operation" association="pivot-A_raisedExceptions_Operation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_redefinedConstraints_Constraint" name="A_redefinedConstraints_Constraint"
-      memberEnd="pivot-Constraint-redefinedConstraints pivot-A_redefinedConstraints_Constraint-Ppivot.A_redefinedConstraints_Constraint.Pnull">
-    <ownedEnd xmi:id="pivot-A_redefinedConstraints_Constraint-Ppivot.A_redefinedConstraints_Constraint.Pnull" type="pivot-Constraint"
-        association="pivot-A_redefinedConstraints_Constraint"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_redefinedOperations_Operation" name="A_redefinedOperations_Operation" memberEnd="pivot-Operation-redefinedOperations pivot-A_redefinedOperations_Operation-Ppivot.A_redefinedOperations_Operation.Pnull">
-    <ownedEnd xmi:id="pivot-A_redefinedOperations_Operation-Ppivot.A_redefinedOperations_Operation.Pnull" type="pivot-Operation" association="pivot-A_redefinedOperations_Operation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_redefinedProperties_Property" name="A_redefinedProperties_Property" memberEnd="pivot-Property-redefinedProperties pivot-A_redefinedProperties_Property-Ppivot.A_redefinedProperties_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_redefinedProperties_Property-Ppivot.A_redefinedProperties_Property.Pnull" type="pivot-Property" association="pivot-A_redefinedProperties_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_redefinedState_State" name="A_redefinedState_State" memberEnd="pivot-State-redefinedState pivot-A_redefinedState_State-Ppivot.A_redefinedState_State.Pnull">
-    <ownedEnd xmi:id="pivot-A_redefinedState_State-Ppivot.A_redefinedState_State.Pnull" type="pivot-State" association="pivot-A_redefinedState_State"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_references_Annotation" name="A_references_Annotation" memberEnd="pivot-Annotation-references pivot-A_references_Annotation-Ppivot.A_references_Annotation.Pnull">
-    <ownedEnd xmi:id="pivot-A_references_Annotation-Ppivot.A_references_Annotation.Pnull" type="pivot-Annotation" association="pivot-A_references_Annotation"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredAssociationClass_AssociationClassCallExp" name="A_referredAssociationClass_AssociationClassCallExp"
-      memberEnd="pivot-AssociationClassCallExp-referredAssociationClass pivot-A_referredAssociationClass_AssociationClassCallExp-Ppivot.A_referredAssociationClass_AssociationClassCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredAssociationClass_AssociationClassCallExp-Ppivot.A_referredAssociationClass_AssociationClassCallExp.Pnull"
-        type="pivot-AssociationClassCallExp" association="pivot-A_referredAssociationClass_AssociationClassCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredIteration_LoopExp" name="A_referredIteration_LoopExp" memberEnd="pivot-LoopExp-referredIteration pivot-A_referredIteration_LoopExp-Ppivot.A_referredIteration_LoopExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredIteration_LoopExp-Ppivot.A_referredIteration_LoopExp.Pnull" type="pivot-LoopExp" association="pivot-A_referredIteration_LoopExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredLiteral_EnumLiteralExp" name="A_referredLiteral_EnumLiteralExp"
-      memberEnd="pivot-EnumLiteralExp-referredLiteral pivot-A_referredLiteral_EnumLiteralExp-Ppivot.A_referredLiteral_EnumLiteralExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredLiteral_EnumLiteralExp-Ppivot.A_referredLiteral_EnumLiteralExp.Pnull" type="pivot-EnumLiteralExp"
-        association="pivot-A_referredLiteral_EnumLiteralExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredOperation_MessageType" name="A_referredOperation_MessageType" memberEnd="pivot-MessageType-referredOperation pivot-A_referredOperation_MessageType-Ppivot.A_referredOperation_MessageType.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredOperation_MessageType-Ppivot.A_referredOperation_MessageType.Pnull" type="pivot-MessageType" association="pivot-A_referredOperation_MessageType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredOperation_OperationCallExp" name="A_referredOperation_OperationCallExp"
-      memberEnd="pivot-OperationCallExp-referredOperation pivot-A_referredOperation_OperationCallExp-Ppivot.A_referredOperation_OperationCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredOperation_OperationCallExp-Ppivot.A_referredOperation_OperationCallExp.Pnull" type="pivot-OperationCallExp"
-        association="pivot-A_referredOperation_OperationCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredProperty_ConstructorPart" name="A_referredProperty_ConstructorPart"
-      memberEnd="pivot-ConstructorPart-referredProperty pivot-A_referredProperty_ConstructorPart-Ppivot.A_referredProperty_ConstructorPart.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredProperty_ConstructorPart-Ppivot.A_referredProperty_ConstructorPart.Pnull" type="pivot-ConstructorPart"
-        association="pivot-A_referredProperty_ConstructorPart"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredProperty_DynamicProperty" name="A_referredProperty_DynamicProperty"
-      memberEnd="pivot-DynamicProperty-referredProperty pivot-A_referredProperty_DynamicProperty-Ppivot.A_referredProperty_DynamicProperty.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredProperty_DynamicProperty-Ppivot.A_referredProperty_DynamicProperty.Pnull" type="pivot-DynamicProperty"
-        association="pivot-A_referredProperty_DynamicProperty"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredProperty_OppositePropertyCallExp" name="A_referredProperty_OppositePropertyCallExp"
-      memberEnd="pivot-OppositePropertyCallExp-referredProperty pivot-A_referredProperty_OppositePropertyCallExp-Ppivot.A_referredProperty_OppositePropertyCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredProperty_OppositePropertyCallExp-Ppivot.A_referredProperty_OppositePropertyCallExp.Pnull" type="pivot-OppositePropertyCallExp"
-        association="pivot-A_referredProperty_OppositePropertyCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredProperty_Property" name="A_referredProperty_Property" memberEnd="pivot-Property-referredProperty pivot-A_referredProperty_Property-Ppivot.A_referredProperty_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredProperty_Property-Ppivot.A_referredProperty_Property.Pnull" type="pivot-Property" association="pivot-A_referredProperty_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredProperty_PropertyCallExp" name="A_referredProperty_PropertyCallExp"
-      memberEnd="pivot-PropertyCallExp-referredProperty pivot-A_referredProperty_PropertyCallExp-Ppivot.A_referredProperty_PropertyCallExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredProperty_PropertyCallExp-Ppivot.A_referredProperty_PropertyCallExp.Pnull" type="pivot-PropertyCallExp"
-        association="pivot-A_referredProperty_PropertyCallExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredSignal_MessageType" name="A_referredSignal_MessageType" memberEnd="pivot-MessageType-referredSignal pivot-A_referredSignal_MessageType-Ppivot.A_referredSignal_MessageType.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredSignal_MessageType-Ppivot.A_referredSignal_MessageType.Pnull" type="pivot-MessageType" association="pivot-A_referredSignal_MessageType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredState_StateExp" name="A_referredState_StateExp" memberEnd="pivot-StateExp-referredState pivot-A_referredState_StateExp-Ppivot.A_referredState_StateExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredState_StateExp-Ppivot.A_referredState_StateExp.Pnull" type="pivot-StateExp" association="pivot-A_referredState_StateExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredType_TypeExp" name="A_referredType_TypeExp" memberEnd="pivot-TypeExp-referredType pivot-A_referredType_TypeExp-Ppivot.A_referredType_TypeExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredType_TypeExp-Ppivot.A_referredType_TypeExp.Pnull" type="pivot-TypeExp" association="pivot-A_referredType_TypeExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_referredVariable_VariableExp" name="A_referredVariable_VariableExp" memberEnd="pivot-VariableExp-referredVariable pivot-A_referredVariable_VariableExp-Ppivot.A_referredVariable_VariableExp.Pnull">
-    <ownedEnd xmi:id="pivot-A_referredVariable_VariableExp-Ppivot.A_referredVariable_VariableExp.Pnull" type="pivot-VariableExp" association="pivot-A_referredVariable_VariableExp"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_representedParameter_Variable" name="A_representedParameter_Variable" memberEnd="pivot-Variable-representedParameter pivot-A_representedParameter_Variable-Ppivot.A_representedParameter_Variable.Pnull">
-    <ownedEnd xmi:id="pivot-A_representedParameter_Variable-Ppivot.A_representedParameter_Variable.Pnull" type="pivot-Variable" association="pivot-A_representedParameter_Variable"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_resultType_LambdaType" name="A_resultType_LambdaType" memberEnd="pivot-LambdaType-resultType pivot-A_resultType_LambdaType-Ppivot.A_resultType_LambdaType.Pnull">
-    <ownedEnd xmi:id="pivot-A_resultType_LambdaType-Ppivot.A_resultType_LambdaType.Pnull" type="pivot-LambdaType" association="pivot-A_resultType_LambdaType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_signal_SendSignalAction" name="A_signal_SendSignalAction" memberEnd="pivot-SendSignalAction-signal pivot-A_signal_SendSignalAction-Ppivot.A_signal_SendSignalAction.Pnull">
-    <ownedEnd xmi:id="pivot-A_signal_SendSignalAction-Ppivot.A_signal_SendSignalAction.Pnull" type="pivot-SendSignalAction" association="pivot-A_signal_SendSignalAction"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_stereotype_ElementExtension" name="A_stereotype_ElementExtension" memberEnd="pivot-ElementExtension-stereotype pivot-A_stereotype_ElementExtension-Ppivot.A_stereotype_ElementExtension.Pnull">
-    <ownedEnd xmi:id="pivot-A_stereotype_ElementExtension-Ppivot.A_stereotype_ElementExtension.Pnull" type="pivot-ElementExtension" association="pivot-A_stereotype_ElementExtension"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_submachines_submachineStates" name="A_submachines_submachineStates" memberEnd="pivot-State-submachines pivot-StateMachine-submachineStates"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_subsettedProperty_Property" name="A_subsettedProperty_Property" memberEnd="pivot-Property-subsettedProperty pivot-A_subsettedProperty_Property-Ppivot.A_subsettedProperty_Property.Pnull">
-    <ownedEnd xmi:id="pivot-A_subsettedProperty_Property-Ppivot.A_subsettedProperty_Property.Pnull" type="pivot-Property" association="pivot-A_subsettedProperty_Property"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_superClasses_Class" name="A_superClasses_Class" memberEnd="pivot-Class-superClasses pivot-A_superClasses_Class-Ppivot.A_superClasses_Class.Pnull">
-    <ownedEnd xmi:id="pivot-A_superClasses_Class-Ppivot.A_superClasses_Class.Pnull" type="pivot-Class" association="pivot-A_superClasses_Class"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_target_incomingTransitions" name="A_target_incomingTransitions" memberEnd="pivot-Transition-target pivot-Vertex-incomingTransitions"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_templateSignature_TemplateBinding" name="A_templateSignature_TemplateBinding"
-      memberEnd="pivot-TemplateBinding-templateSignature pivot-A_templateSignature_TemplateBinding-Ppivot.A_templateSignature_TemplateBinding.Pnull">
-    <ownedEnd xmi:id="pivot-A_templateSignature_TemplateBinding-Ppivot.A_templateSignature_TemplateBinding.Pnull" type="pivot-TemplateBinding"
-        association="pivot-A_templateSignature_TemplateBinding"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_typeValue_OCLExpression" name="A_typeValue_OCLExpression" memberEnd="pivot-OCLExpression-typeValue pivot-A_typeValue_OCLExpression-Ppivot.A_typeValue_OCLExpression.Pnull">
-    <ownedEnd xmi:id="pivot-A_typeValue_OCLExpression-Ppivot.A_typeValue_OCLExpression.Pnull" type="pivot-OCLExpression" association="pivot-A_typeValue_OCLExpression"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_typeValue_VariableDeclaration" name="A_typeValue_VariableDeclaration" memberEnd="pivot-VariableDeclaration-typeValue pivot-A_typeValue_VariableDeclaration-Ppivot.A_typeValue_VariableDeclaration.Pnull">
-    <ownedEnd xmi:id="pivot-A_typeValue_VariableDeclaration-Ppivot.A_typeValue_VariableDeclaration.Pnull" type="pivot-VariableDeclaration"
-        association="pivot-A_typeValue_VariableDeclaration"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_type_TypedElement" name="A_type_TypedElement" memberEnd="pivot-TypedElement-type pivot-A_type_TypedElement-Ppivot.A_type_TypedElement.Pnull">
-    <ownedEnd xmi:id="pivot-A_type_TypedElement-Ppivot.A_type_TypedElement.Pnull" type="pivot-TypedElement" association="pivot-A_type_TypedElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_unownedAttributes_associationClass" name="A_unownedAttributes_associationClass"
-      memberEnd="pivot-AssociationClass-unownedAttributes pivot-Property-associationClass"/>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_unspecializedElement_TemplateableElement" name="A_unspecializedElement_TemplateableElement"
-      memberEnd="pivot-TemplateableElement-unspecializedElement pivot-A_unspecializedElement_TemplateableElement-Ppivot.A_unspecializedElement_TemplateableElement.Pnull">
-    <ownedEnd xmi:id="pivot-A_unspecializedElement_TemplateableElement-Ppivot.A_unspecializedElement_TemplateableElement.Pnull" type="pivot-TemplateableElement"
-        association="pivot-A_unspecializedElement_TemplateableElement"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_upperBound_TemplateParameter" name="A_upperBound_TemplateParameter" memberEnd="pivot-TemplateParameter-upperBound pivot-A_upperBound_TemplateParameter-Ppivot.A_upperBound_TemplateParameter.Pnull">
-    <ownedEnd xmi:id="pivot-A_upperBound_TemplateParameter-Ppivot.A_upperBound_TemplateParameter.Pnull" type="pivot-TemplateParameter"
-        association="pivot-A_upperBound_TemplateParameter"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Association" xmi:id="pivot-A_upperBound_WildcardType" name="A_upperBound_WildcardType" memberEnd="pivot-WildcardType-upperBound pivot-A_upperBound_WildcardType-Ppivot.A_upperBound_WildcardType.Pnull">
-    <ownedEnd xmi:id="pivot-A_upperBound_WildcardType-Ppivot.A_upperBound_WildcardType.Pnull" type="pivot-WildcardType" association="pivot-A_upperBound_WildcardType"/>
-  </packagedElement>
-  <packagedElement xmi:type="uml:Interface" xmi:id="pivot-MorePivotable" name="MorePivotable"/>
-  <packagedElement xmi:type="uml:Interface" xmi:id="pivot-Nameable" name="Nameable"/>
-  <packagedElement xmi:type="uml:Interface" xmi:id="pivot-Pivotable" name="Pivotable"/>
-  <packagedElement xmi:type="uml:Interface" xmi:id="pivot-ReferringElement" name="ReferringElement"/>
-  <packagedElement xmi:type="uml:Interface" xmi:id="pivot-Visitable" name="Visitable"/>
-  <profileApplication xmi:id="__3vYysJdEeShyISVl59OvA">
-    <eAnnotations xmi:id="__3vYy8JdEeShyISVl59OvA" source="http://www.eclipse.org/uml2/2.0.0/UML">
-      <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
-    </eAnnotations>
-    <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-  </profileApplication>
-</uml:Model>
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateAlignedPivotModel.mwe2 b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateAlignedPivotModel.mwe2
index 8123171..9dac5d9 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateAlignedPivotModel.mwe2
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateAlignedPivotModel.mwe2
@@ -19,9 +19,11 @@
 import org.eclipse.emf.ecore.resource.impl.*
 import org.eclipse.uml2.uml.resource.XMI2UMLResource
 
-var projectName = "org.eclipse.ocl.examples.build"
+var buildProjectName = "org.eclipse.ocl.examples.build"
 var ecoreSlot = "ecore"
 var umlSlot = "uml"
+var pivotProjectName = "org.eclipse.ocl.pivot"
+var internalProjectName = "org.eclipse.ocl.pivot"
 //var platformURI = ".."
 
 /**
@@ -30,94 +32,95 @@
  *  and finally generating the model code.
  */
 Workflow {
-	bean = ResourceSetImpl : resourceSet {}
-    bean = StandaloneSetup { resourceSet = resourceSet
+	bean = ResourceSetImpl : resourceSet1 {}
+    bean = StandaloneSetup { resourceSet = resourceSet1
     	uriMap = Mapping {
     		from = "http://www.omg.org/spec/UML/20131001/PrimitiveTypes.xmi"
-    		to = "platform:/resource/${projectName}/model/PrimitiveTypes.xmi"
+    		to = "platform:/resource/${buildProjectName}/model/PrimitiveTypes.xmi"
     	}
 //    	platformUri = ".."
 //    	scanClassPath = true
 //    	registerGeneratedEPackage = "org.eclipse.xtext.common.types.TypesPackage"
     }
-    bean = ProjectMapSetup { resourceSet = resourceSet }
-    bean = UMLStandaloneSetup { resourceSet = resourceSet }
-    bean = OCLStandaloneSetup { resourceSet = resourceSet
+    bean = ProjectMapSetup { resourceSet = resourceSet1 }
+    bean = UMLStandaloneSetup { resourceSet = resourceSet1 }
+    bean = OCLStandaloneSetup { resourceSet = resourceSet1
     	dynamicPackage = Mapping {
     		from = "http://www.eclipse.org/ocl/2012/UML2EcoreControl"
-    		to = "platform:/resource/${projectName}/model/UML2EcoreControl.ecore#/"
+    		to = "platform:/resource/${buildProjectName}/model/UML2EcoreControl.ecore#/"
     	}
     	dynamicPackage = Mapping {
     		from = "http://www.eclipse.org/ocl/2012/UML2EcoreMapping"
-    		to = "platform:/resource/${projectName}/model/UML2EcoreMapping.ecore#/"
+    		to = "platform:/resource/${buildProjectName}/model/UML2EcoreMapping.ecore#/"
     	}
     }
-    bean = OCLDelegateSetup { resourceSet = resourceSet }
+//    bean = SplitGenModelSetup { resourceSet = resourceSet }
+    bean = OCLDelegateSetup { resourceSet = resourceSet1 }
     bean = CompleteOCLStandaloneSetup {}
     //
     //	Fixup xmi:ids and convert cmof to uml
     //
-    component = IdAssigner { resourceSet = resourceSet skipOnErrors = true
+    component = IdAssigner { resourceSet = resourceSet1 skipOnErrors = true
     	assignFlatIds = true
     	mapping = Mapping {
-    		from = "/${projectName}/model/PrimitiveTypes.xmi"
-    		to = "/${projectName}/model-gen/PrimitiveTypes.uml"
+    		from = "/${buildProjectName}/model/PrimitiveTypes.xmi"
+    		to = "/${buildProjectName}/model-gen/PrimitiveTypes.uml"
     	}
     	mapping = Mapping {
-    		from = "/${projectName}/model/UML.xmi"
-    		to = "/${projectName}/model-gen/UML.uml"
+    		from = "/${buildProjectName}/model/UML.xmi"
+    		to = "/${buildProjectName}/model-gen/UML.uml"
     	}
     }
-    component = IdAssigner { resourceSet = resourceSet skipOnErrors = true
+    component = IdAssigner { resourceSet = resourceSet1 skipOnErrors = true
     	assignFlatIds = false
     	mapping = Mapping {
-    		from = "/${projectName}/model/OCL.uml"
-    		to = "/${projectName}/model-gen/OCL.uml"
+    		from = "/${buildProjectName}/model/OCL.uml"
+    		to = "/${buildProjectName}/model-gen/OCL.uml"
     	}
     	mapping = Mapping {
-    		from = "/${projectName}/model/MDTOCL.uml"
-    		to = "/${projectName}/model-gen/MDTOCL.uml"
+    		from = "/${buildProjectName}/model/MDTOCL.uml"
+    		to = "/${buildProjectName}/model-gen/MDTOCL.uml"
     	}
     }
     //
     //	Create an OclPivot.ecore that can be compared with the new.
     //
-    component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceReader { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
     	uri = "/org.eclipse.ocl.pivot/model/Pivot.ecore"
     }
-    component = EcoreNormalizer { resourceSet = resourceSet skipOnErrors = true
+    component = EcoreNormalizer { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
     }
-    component = SetNsURI { resourceSet = resourceSet skipOnErrors = true
+    component = SetNsURI { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
     	nsURI = "http://www.eclipse.org/ocl/0.9.0/Pivot"
     }
-    component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceWriter { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
-    	uri = "/${projectName}/model-gen/OldPivot.ecore"
+    	uri = "/${buildProjectName}/model-gen/OldPivot.ecore"
     }
     
     
     
     
-    component = QVToTransformationExecutor { resourceSet = resourceSet skipOnErrors = true
-    	uri = "platform:/resource/${projectName}/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto"
-    	in = "platform:/resource/${projectName}/model/UML2ASinEcore.xmi" 
-    	out = "platform:/resource/${projectName}/model-gen/UML2ASAnalysis.xmi"
+    component = QVToTransformationExecutor { resourceSet = resourceSet1 skipOnErrors = true
+    	uri = "platform:/resource/${buildProjectName}/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto"
+    	in = "platform:/resource/${buildProjectName}/model/UML2ASinEcore.xmi" 
+    	out = "platform:/resource/${buildProjectName}/model-gen/UML2ASAnalysis.xmi"
 	}
-    component = QVToTransformationExecutor { resourceSet = resourceSet skipOnErrors = true
-    	uri = "platform:/resource/${projectName}/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto"
-    	in = "platform:/resource/${projectName}/model-gen/UML2ASAnalysis.xmi" 
+    component = QVToTransformationExecutor { resourceSet = resourceSet1 skipOnErrors = true
+    	uri = "platform:/resource/${buildProjectName}/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto"
+    	in = "platform:/resource/${buildProjectName}/model-gen/UML2ASAnalysis.xmi" 
     	in = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.ecore" 
-    	out = "platform:/resource/${projectName}/model-gen/UML2AS.ecore" 
+    	out = "platform:/resource/${buildProjectName}/model-gen/UML2AS.ecore" 
 	}
-    component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceReader { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
-    	uri = "/${projectName}/model-gen/UML2AS.ecore"
+    	uri = "/${buildProjectName}/model-gen/UML2AS.ecore"
     }
-/*    component = ConstraintMerger { resourceSet = resourceSet skipOnErrors = true
-    	projectName = "${projectName}"
+/*    component = ConstraintMerger { resourceSet = resourceSet1 skipOnErrors = true
+    	projectName = "${buildProjectName}"
     	modelSlot = "${ecoreSlot}"
     	uri = "model/Pivot.ocl"
     } */
@@ -130,23 +133,23 @@
 //    component = OCLDelegateActivator { skipOnErrors = true
 //    	modelSlot = "${pivotSlot}"
 //    }
-    component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceWriter { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
-    	uri = "/${projectName}/model-gen/UML+OCL2Pivot.ecore"
+    	uri = "/${internalProjectName}/model/RawPivot.ecore"
     }
     //
     //	Create a NewPivot.ecore that can be compared with the old.
     //
-    component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceReader { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
-    	uri = "/${projectName}/model-gen/UML+OCL2Pivot.ecore"
+    	uri = "/${internalProjectName}/model/RawPivot.ecore"
     }
-    component = EcoreNormalizer { resourceSet = resourceSet skipOnErrors = true
+    component = EcoreNormalizer { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
     }
-    component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceWriter { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${ecoreSlot}"
-    	uri = "/${projectName}/model-gen/NewPivot.ecore"
+    	uri = "/${buildProjectName}/model-gen/NewPivot.ecore"
     }
 	//
 	//
@@ -158,19 +161,168 @@
     component = PackageAlphabetizer { skipOnErrors = true
     	modelSlot = "${umlSlot}"
     }
-    component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
+    component = ResourceWriter { resourceSet = resourceSet1 skipOnErrors = true
     	modelSlot = "${umlSlot}"
-    	uri = "/${projectName}/model-gen/NewPivot.uml"
+    	uri = "/${buildProjectName}/model-gen/NewPivot.uml"
     }
     //
     //	Make manually copied Pivot.uml stable for diagrams
     //
-    component = IdAssigner { resourceSet = resourceSet skipOnErrors = true
+/*    component = IdAssigner { resourceSet = resourceSet1 skipOnErrors = true
     	assignFlatIds = false
     	mapping = Mapping {
-    		from = "/${projectName}/model-gen/NewPivot.uml"
-    		to = "/${projectName}/model/Pivot.uml"
+    		from = "/${buildProjectName}/model-gen/NewPivot.uml"
+    		to = "/${buildProjectName}/model/Pivot.uml"
     	}
+    } */
+    component = ResourceReader { resourceSet = resourceSet1 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    	uri = "/${buildProjectName}/model-gen/NewPivot.uml"
+    }
+    component = UMLIDAssigner { resourceSet = resourceSet1 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    }
+    component = ResourceWriter { resourceSet = resourceSet1 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    	uri = "/${buildProjectName}/model/Pivot.uml"
+    }
+
+
+	bean = ResourceSetImpl : resourceSet2 {}
+    bean = ProjectMapSetup { resourceSet = resourceSet2 }
+    bean = UMLStandaloneSetup { resourceSet = resourceSet2 }
+    bean = OCLStandaloneSetup {}
+//    bean = GenModelSetup { resourceSet = resourceSet2 }
+//    bean = UMLGenModelSetup { resourceSet = resourceSet2 }
+    bean = SplitGenModelSetup { resourceSet = resourceSet2 }
+    component = ResourceReader { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    	uri = "/${internalProjectName}/model/RawPivot.ecore"
+	}
+//    component = PackageMerger { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+    component = EPackageAlphabetizer { skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    }
+    component = EConstraintRemover { skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    }
+//    component = NonAbstractTypeZapper { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+//    component = CommentNormalizer { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+//    component = UMLIDAssigner { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+    component = ResourceWriter { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    	uri = "/${internalProjectName}/model/Pivot.ecore"
+//		contentTypeIdentifier = "org.eclipse.uml2.uml_5_0_0" // UMLResource.UML_CONTENT_TYPE_IDENTIFIER
+    }
+     component = GenmodelReloader { resourceSet = resourceSet2 skipOnErrors = true
+    	projectName = "${internalProjectName}"
+    	modelSlot = "${ecoreSlot}"
+    	genModel = "/${internalProjectName}/model/Pivot.genmodel"
+    	ecoreFile = "/${internalProjectName}/model/Pivot.ecore"
+//    	modelImporter = "org.eclipse.uml2.uml.ecore.importer.UMLImporter"
+//    	modelImporter = "org.eclipse.ocl.examples.build.utilities.UMLImporterWithDelegates"	
+    }
+     component = ResourceReader { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    	uri = "/${internalProjectName}/model/Pivot.ecore"
+    }
+    component = ConstraintMerger { resourceSet = resourceSet2 skipOnErrors = true
+    	projectName = "${internalProjectName}"
+    	modelSlot = "${ecoreSlot}"
+    	uri = "model/Pivot.ocl"
+    	invariantPrefix = "validate"
+    }
+    component = EPackageAlphabetizer { skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    }
+    component = EConstraintRemover { skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    }
+//    component = NonAbstractTypeZapper { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+//    component = CommentNormalizer { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+//    component = UMLIDAssigner { skipOnErrors = true
+//    	modelSlot = "${umlSlot}"
+//    }
+    component = ResourceWriter { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${umlSlot}"
+    	uri = "/${internalProjectName}/model/Pivot.ecore"
+//		contentTypeIdentifier = "org.eclipse.uml2.uml_5_0_0" // UMLResource.UML_CONTENT_TYPE_IDENTIFIER
+    }
+     component = GenmodelReloader { resourceSet = resourceSet2 skipOnErrors = true
+    	projectName = "${internalProjectName}"
+    	modelSlot = "${ecoreSlot}"
+    	genModel = "/${internalProjectName}/model/Pivot.genmodel"
+    	ecoreFile = "/${internalProjectName}/model/Pivot.ecore"
+//    	modelImporter = "org.eclipse.uml2.uml.ecore.importer.UMLImporter"
+//    	modelImporter = "org.eclipse.ocl.examples.build.utilities.UMLImporterWithDelegates"	
+    }
+     component = ResourceReader { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    	uri = "/${internalProjectName}/model/Pivot.ecore"
+    }
+    component = ConstraintMerger { resourceSet = resourceSet2 skipOnErrors = true
+    	projectName = "${internalProjectName}"
+    	modelSlot = "${ecoreSlot}"
+    	uri = "model/Pivot.ocl"
+    	invariantPrefix = "validate"
+    }
+    component = EPackageAlphabetizer { skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    }
+    component = PruneSuperClasses { skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    }
+    component = SetASmetamodel { skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    }
+//    component = PivotWorkarounds { skipOnErrors = true
+//    	modelSlot = "${ecoreSlot}"
+//    }
+//    component = OCLDelegateActivator { skipOnErrors = true
+//    	modelSlot = "${pivotSlot}"
+//    }
+    component = ResourceWriter { resourceSet = resourceSet2 skipOnErrors = true
+    	modelSlot = "${ecoreSlot}"
+    }
+    
+    component = GenerateModel { resourceSet = resourceSet2 skipOnErrors = true
+//    	projectName = "${internalProjectName}"
+    	genModel = "/${internalProjectName}/model/Pivot.genmodel"
+//    	clearResourceSet = false
+//    	modelSlot = "${ecoreSlot}"
+    }
+
+    component = GenerateASVisitors { resourceSet = resourceSet2
+    	projectName = "${internalProjectName}"
+    	projectPrefix = "Pivot"
+    	superProjectName = ""
+    	genModelFile = "model/Pivot.genmodel"
+    	javaFolder = "emf-gen"
+    	modelPackageName = "${pivotProjectName}"
+    	visitorPackageName = "${pivotProjectName}.util"
+    	visitorClassName = "Visitor"
+//    	visitablePackageName = "${pivotProjectName}.util"
+    	visitableClassName = "Visitable"
+    }
+    component = GenerateOCLmetamodelXtend { //resourceSet = resourceSet
+    	projectName = "${internalProjectName}"
+    	modelFile = "model/Pivot.ecore"
+    	uri = "http://www.eclipse.org/ocl/2015/Pivot"
+    	javaFolder = "emf-gen"
+    	javaPackageName = "${pivotProjectName}.model"
+    	javaClassName = "OCLmetamodel"
     }
 }
 
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GeneratePivotModel.mwe2 b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GeneratePivotModel.mwe2
index 68a065f..6c548a3 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GeneratePivotModel.mwe2
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GeneratePivotModel.mwe2
@@ -22,7 +22,7 @@
 
 var ecoreSlot = "ecore"
 var umlSlot = "uml"
-var projectName = "org.eclipse.ocl.pivot"
+var pivotProjectName = "org.eclipse.ocl.pivot"
 var internalProjectName = "org.eclipse.ocl.pivot"
 //var platformURI = ".."
 
@@ -41,7 +41,7 @@
     bean = SplitGenModelSetup { resourceSet = resourceSet }
     component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
     	modelSlot = "${umlSlot}"
-    	uri = "/${internalProjectName}/model/Pivot.start.ecore"
+    	uri = "/${internalProjectName}/model/RawPivot.ecore"
 	}
 //    component = PackageMerger { skipOnErrors = true
 //    	modelSlot = "${umlSlot}"
@@ -110,16 +110,16 @@
 //    	modelSlot = "${ecoreSlot}"
     }
 
-/*    component = GenerateASVisitors { resourceSet = resourceSet
+    component = GenerateASVisitors { resourceSet = resourceSet
     	projectName = "${internalProjectName}"
     	projectPrefix = "Pivot"
     	superProjectName = ""
     	genModelFile = "model/Pivot.genmodel"
     	javaFolder = "emf-gen"
-    	modelPackageName = "${projectName}"
-    	visitorPackageName = "${projectName}.util"
+    	modelPackageName = "${pivotProjectName}"
+    	visitorPackageName = "${pivotProjectName}.util"
     	visitorClassName = "Visitor"
-//    	visitablePackageName = "${projectName}.util"
+//    	visitablePackageName = "${pivotProjectName}.util"
     	visitableClassName = "Visitable"
     }
     component = GenerateOCLmetamodelXtend { //resourceSet = resourceSet
@@ -127,8 +127,8 @@
     	modelFile = "model/Pivot.ecore"
     	uri = "http://www.eclipse.org/ocl/2015/Pivot"
     	javaFolder = "emf-gen"
-    	javaPackageName = "${projectName}.model"
+    	javaPackageName = "${pivotProjectName}.model"
     	javaClassName = "OCLmetamodel"
-    } */
+    }
 }
 
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto
index 3d088ed..91d468b 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreAnalyzer.qvto
@@ -4,7 +4,10 @@
 modeltype UML uses 'http://www.eclipse.org/uml2/5.0.0/UML';
 modeltype Ecore uses 'http://www.eclipse.org/emf/2002/Ecore';
 
-transformation PruneUML(in uml2ecore : UML2EcoreControl, out UML2EcoreMapping);
+/**
+ * Analyze the references and directives from a UML2EcoreControl to produce an analysis of what needs synthesis.
+ */
+transformation UML2EcoreAnalyze(in uml2ecore : UML2EcoreControl, out UML2EcoreMapping);
 
 property debugPackage : Boolean = false;
 property debugProperty : Boolean = false;
@@ -293,7 +296,8 @@
   
 query selectOperations(types : Set(UML::Type)) : OrderedSet(UML2EcoreMapping::OperationMapping) =
 	let classes : Set(UML::Class) = types->selectByKind(UML::Class)->asSet(),
-		operations : Set(UML::Operation) = classes.ownedOperation->asSet(),
+		interfaces : Set(UML::Interface) = types->selectByKind(UML::Interface)->asSet(),
+		operations : Set(UML::Operation) = classes.ownedOperation->asSet()->union(interfaces.ownedOperation->asSet()),
 		unwantedOperations : Set(UML::Operation) = Set{}, --operations->select(isDerivedUnion),
 		wantedOperations : Set(UML::Operation) = operations - unwantedOperations - deleteOperationsMappings.oldOperations->asSet(),
 		wantedOperationNames : Set(String) = wantedOperations.name->asSet(),
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreMerger.qvto b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreMerger.qvto
index d6f0d69..17dd3ca 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreMerger.qvto
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreMerger.qvto
@@ -15,9 +15,9 @@
 modeltype Ecore uses 'http://www.eclipse.org/emf/2002/Ecore';
 
 /**
- * Merge A UML2EcoreContrtol model to flatten its imports and create a simpler control file.
+ * Merger the imports of a UML2EcoreContrtol model to create a simpler control file.
  */
-transformation PruneUML(in uml2ecore : UML2EcoreControl, out UML2EcoreControl);
+transformation UML2EcoreMerger(in uml2ecore : UML2EcoreControl, out UML2EcoreControl);
 
 property debugPackage : Boolean = false;
 property debugProperty : Boolean = false;
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto
index 4872493..7699b78 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/qvto/UML2EcoreSynthesizer.qvto
@@ -5,7 +5,10 @@
 modeltype UML uses 'http://www.eclipse.org/uml2/5.0.0/UML';
 modeltype Ecore uses 'http://www.eclipse.org/emf/2002/Ecore';
 
-transformation PruneUML(in analysis : UML2Ecore, in ecore : Ecore, out Ecore);
+/**
+ * Expand the UML2Ecore analysis to create an Ecore output, possibly referring to some built-in Ecore elements.
+ */
+transformation UML2EcoreSynthesizer(in analysis : UML2Ecore, in ecore : Ecore, out Ecore);
 
 configuration property selectedPackage : String;
 	
@@ -208,7 +211,7 @@
 {
 --	log('  createAbstractType', self.name);
 	result.name := createType.newName;
-	result.map installComments(createType.oldTypes.ownedComment->asSet());
+	result.map installComments(createType.oldTypes.ownedComment->sortedBy(body));
 	createType.oldTypes->forEach(t) {
 --	    log('  <= ', t.name);
 		umlType2eClassifier->put(t, result);
@@ -231,6 +234,8 @@
 	var oldSameNamedClasses : Set(UML::Class) := oldClasses->select(c | c.name = self.name);
 --	log('    oldSameNamedClasses', oldSameNamedClasses->display());
 	var oldAbstractClasses : Set(UML::Class) := oldSameNamedClasses->select(isAbstract);
+	var oldNonAbstractClasses : Set(UML::Class) := oldSameNamedClasses->reject(isAbstract);
+	assert error (oldAbstractClasses->isEmpty() or oldNonAbstractClasses->isEmpty()) with log('Inconsistently abstract ' + self.name + ' ' + oldAbstractClasses->size().toString() + '/' + oldNonAbstractClasses->size().toString(), oldClasses->any(true));
 	if (debug_EClass_abstract) log('    oldAbstractClasses', oldAbstractClasses->display());
 	result._'abstract' := oldAbstractClasses->notEmpty() or self.oclIsKindOf(UML::Interface);
 	result.interface := self.oclIsKindOf(UML::Interface);
@@ -281,8 +286,8 @@
 --	log('  convertEnumerationLiteral', self.name + self.enumeration.ownedLiteral->iterate(l; acc : String = ':' | acc + ' ' + l.name) + ' / ' + idx.toString());
 	umlEnumerationLiteral2eEnumLiteral->put(self, result);
 	result.name := self.name;
-	result.map installComments(self.ownedComment);
---	result.value := literals->indexOf(self)-1;
+	result.map installComments(self.ownedComment->asSequence()->sortedBy(body));
+	result.value := idx;
 }
 
 mapping UML2EcoreMapping::CreateOperation::createOperation(type : Ecore::EClassifier, oldOperations : Set(UML::Operation), newType : Ecore::EClassifier) : Ecore::EOperation
@@ -292,7 +297,7 @@
 	var oldOperation : Operation := oldOperations->any(true);
 --	log('  createOperation', self.newName);
 	result.name := self.newName;
-	result.map installComments(oldOperations.ownedComment->asSet());
+	result.map installComments(oldOperations.ownedComment->sortedBy(body));
 	result.lowerBound := oldOperation.lower;
 	result.upperBound := oldOperation.upper;
 	result.unique := oldOperation.isUnique;
@@ -307,7 +312,7 @@
 {
 --	log('  createParameter', self.newName);
 	result.name := self.name;
-	result.map installComments(self.ownedComment->asSet());
+	result.map installComments(self.ownedComment->asSequence()->sortedBy(body));
 	result.lowerBound := self.lower;
 	result.upperBound := self.upper;
 	result.unique := self.isUnique;
@@ -368,7 +373,7 @@
 	var oldProperty : Property := oldProperties->any(true);
 	var defaultValues : Set(UML::ValueSpecification) := oldProperties.defaultValue->excluding(null)->asSet();
 	output.name := self.newName;
-	output.map installComments(oldProperties.ownedComment->asSet());
+	output.map installComments(oldProperties.ownedComment->sortedBy(body));
 	output.lowerBound := if self.newLowerBound <> null then self.newLowerBound else oldProperties.lower->excluding(null)->max() endif;
 	if (debugDerived) log('    lowerBound', if self.newLowerBound <>null then self.newLowerBound.toString() else 'null' endif + "=>" + output.lowerBound.toString());
 	var finiteUppers := oldProperties.upper->excluding(null)->select(n | n >= 0);
@@ -431,13 +436,13 @@
 	return null;
 }
 
-mapping inout Ecore::ENamedElement::installComments(in comments : Set(UML::Comment))
+mapping inout Ecore::ENamedElement::installComments(in comments : Sequence(UML::Comment))
 {
 	var eComment : Ecore::EAnnotation := if comments->notEmpty() then object Ecore::EAnnotation {
 		source := 'http://www.eclipse.org/emf/2002/GenModel';
 		details += object Ecore::EStringToStringMapEntry {
 			key := 'documentation';
-			value := comments->iterate(c; acc : String = '' | acc + c.body)
+			value := comments->iterate(c; acc : String = '' | if acc = '' then '' else acc + '\n\n' endif + c.body.trim())
 		};
 	} else null endif;
 	self.eAnnotations += if eComment <> null then Set{eComment} else Set{} endif;
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/utilities/EcoreNormalizer.java b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/utilities/EcoreNormalizer.java
index f5b72b4..c0a3801 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/utilities/EcoreNormalizer.java
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/utilities/EcoreNormalizer.java
@@ -26,7 +26,6 @@
 import org.eclipse.emf.ecore.EAnnotation;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EEnumLiteral;
 import org.eclipse.emf.ecore.EModelElement;
 import org.eclipse.emf.ecore.ENamedElement;
 import org.eclipse.emf.ecore.EObject;
@@ -81,10 +80,10 @@
 				EEnum eEnum = (EEnum) eObject;
 				listOfLists.add(eEnum.getELiterals());
 			}
-			else if (eObject instanceof EEnumLiteral) {
-				EEnumLiteral eEnumLiteral = (EEnumLiteral) eObject;
-				eEnumLiteral.setValue(0);
-			}
+//			else if (eObject instanceof EEnumLiteral) {
+//				EEnumLiteral eEnumLiteral = (EEnumLiteral) eObject;
+//				eEnumLiteral.setValue(0);
+//			}
 			else if (eObject instanceof EClass) {
 				EClass eClass = (EClass) eObject;
 				listOfLists.add(eClass.getESuperTypes());
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/AutoPivotLookupVisitor.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/AutoPivotLookupVisitor.java
deleted file mode 100644
index 4e3f23b..0000000
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/AutoPivotLookupVisitor.java
+++ /dev/null
@@ -1,988 +0,0 @@
-/*******************************************************************************
- * «codeGenHelper.getCopyright(' * ')»
- *
- * This code is 100% auto-generated
- * using: org.eclipse.ocl.examples.codegen.java.JavaStream
- *
- * Do not edit it.
- ********************************************************************************/
-
-package org.eclipse.ocl.pivot.util;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.ocl.pivot.Behavior;
-import org.eclipse.ocl.pivot.Class;
-import org.eclipse.ocl.pivot.DataType;
-import org.eclipse.ocl.pivot.Element;
-import org.eclipse.ocl.pivot.Enumeration;
-import org.eclipse.ocl.pivot.EnumerationLiteral;
-import org.eclipse.ocl.pivot.ExpressionInOCL;
-import org.eclipse.ocl.pivot.Import;
-import org.eclipse.ocl.pivot.IterateExp;
-import org.eclipse.ocl.pivot.IteratorExp;
-import org.eclipse.ocl.pivot.LetExp;
-import org.eclipse.ocl.pivot.Library;
-import org.eclipse.ocl.pivot.Model;
-import org.eclipse.ocl.pivot.NamedElement;
-import org.eclipse.ocl.pivot.OCLExpression;
-import org.eclipse.ocl.pivot.Operation;
-import org.eclipse.ocl.pivot.Package;
-import org.eclipse.ocl.pivot.Parameter;
-import org.eclipse.ocl.pivot.PivotPackage;
-import org.eclipse.ocl.pivot.Precedence;
-import org.eclipse.ocl.pivot.Property;
-import org.eclipse.ocl.pivot.StandardLibrary;
-import org.eclipse.ocl.pivot.Variable;
-import org.eclipse.ocl.pivot.evaluation.Evaluator;
-import org.eclipse.ocl.pivot.ids.ClassId;
-import org.eclipse.ocl.pivot.ids.CollectionTypeId;
-import org.eclipse.ocl.pivot.ids.IdManager;
-import org.eclipse.ocl.pivot.ids.IdResolver;
-import org.eclipse.ocl.pivot.ids.NsURIPackageId;
-import org.eclipse.ocl.pivot.ids.RootPackageId;
-import org.eclipse.ocl.pivot.ids.TypeId;
-import org.eclipse.ocl.pivot.internal.library.executor.ExecutorSingleIterationManager;
-import org.eclipse.ocl.pivot.internal.lookup.LookupEnvironment;
-import org.eclipse.ocl.pivot.internal.lookup.LookupPackage;
-import org.eclipse.ocl.pivot.library.AbstractBinaryOperation;
-import org.eclipse.ocl.pivot.library.LibraryIteration;
-import org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation;
-import org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation;
-import org.eclipse.ocl.pivot.library.collection.OrderedCollectionIndexOfOperation;
-import org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation;
-import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation;
-import org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation;
-import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation;
-import org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanOperation;
-import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables;
-import org.eclipse.ocl.pivot.util.AbstractExtendingVisitor;
-import org.eclipse.ocl.pivot.util.Visitable;
-import org.eclipse.ocl.pivot.utilities.ClassUtil;
-import org.eclipse.ocl.pivot.utilities.ValueUtil;
-import org.eclipse.ocl.pivot.values.BagValue;
-import org.eclipse.ocl.pivot.values.IntegerValue;
-import org.eclipse.ocl.pivot.values.InvalidValueException;
-import org.eclipse.ocl.pivot.values.OrderedSetValue;
-import org.eclipse.ocl.pivot.values.SetValue;
-
-public class AutoPivotLookupVisitor
-	extends AbstractExtendingVisitor<LookupEnvironment, LookupEnvironment>
-{
-    public static final @NonNull /*@NonInvalid*/ RootPackageId PACKid_$metamodel$ = IdManager.getRootPackageId("$metamodel$");
-    public static final @NonNull /*@NonInvalid*/ NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Lookup = IdManager.getNsURIPackageId("http://www.eclipse.org/ocl/2015/Lookup", null, LookupPackage.eINSTANCE);
-    public static final @NonNull /*@NonInvalid*/ NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot = IdManager.getNsURIPackageId("http://www.eclipse.org/ocl/2015/Pivot", null, PivotPackage.eINSTANCE);
-    public static final @NonNull /*@NonInvalid*/ RootPackageId PACKid_java_c_s_s_org_eclipse_ocl_pivot_lookup = IdManager.getRootPackageId("java://org.eclipse.ocl.pivot.lookup");
-    public static final @NonNull /*@NonInvalid*/ RootPackageId PACKid_org_eclipse_ocl_pivot_evaluation = IdManager.getRootPackageId("org.eclipse.ocl.pivot.evaluation");
-    public static final @NonNull /*@NonInvalid*/ RootPackageId PACKid_org_eclipse_ocl_pivot_ids = IdManager.getRootPackageId("org.eclipse.ocl.pivot.ids");
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_AutoPivotLookupVisitor = PACKid_java_c_s_s_org_eclipse_ocl_pivot_lookup.getClassId("AutoPivotLookupVisitor", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Behavior = PACKid_$metamodel$.getClassId("Behavior", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Class = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Class", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Class_0 = PACKid_$metamodel$.getClassId("Class", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_DataType = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("DataType", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_DataType_0 = PACKid_$metamodel$.getClassId("DataType", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Element = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Element", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Element_0 = PACKid_$metamodel$.getClassId("Element", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Enumeration = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Enumeration", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_EnumerationLiteral = PACKid_$metamodel$.getClassId("EnumerationLiteral", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Enumeration_0 = PACKid_$metamodel$.getClassId("Enumeration", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Environment = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Lookup.getClassId("Environment", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Evaluator = PACKid_org_eclipse_ocl_pivot_evaluation.getClassId("Evaluator", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_ExpressionInOCL = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("ExpressionInOCL", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_ExpressionInOCL_0 = PACKid_$metamodel$.getClassId("ExpressionInOCL", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_IdResolver = PACKid_org_eclipse_ocl_pivot_ids.getClassId("IdResolver", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Import = PACKid_$metamodel$.getClassId("Import", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_IterateExp = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("IterateExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_IterateExp_0 = PACKid_$metamodel$.getClassId("IterateExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_IteratorExp = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("IteratorExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_IteratorExp_0 = PACKid_$metamodel$.getClassId("IteratorExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_LetExp = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("LetExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_LetExp_0 = PACKid_$metamodel$.getClassId("LetExp", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Library = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Library", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Library_0 = PACKid_$metamodel$.getClassId("Library", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Model = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Model", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Model_0 = PACKid_$metamodel$.getClassId("Model", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_OCLExpression = PACKid_$metamodel$.getClassId("OCLExpression", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_OclElement = PACKid_$metamodel$.getClassId("OclElement", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Operation = PACKid_$metamodel$.getClassId("Operation", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Operation_0 = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Operation", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Package = PACKid_$metamodel$.getClassId("Package", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Package_0 = PACKid_http_c_s_s_www_eclipse_org_s_ocl_s_2015_s_Pivot.getClassId("Package", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Parameter = PACKid_$metamodel$.getClassId("Parameter", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Precedence = PACKid_$metamodel$.getClassId("Precedence", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Property = PACKid_$metamodel$.getClassId("Property", 0);
-    public static final @NonNull /*@NonInvalid*/ ClassId CLSSid_Variable = PACKid_$metamodel$.getClassId("Variable", 0);
-    public static final @NonNull /*@NonInvalid*/ IntegerValue INT_1 = ValueUtil.integerValueOf("1");
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId BAG_CLSSid_Behavior = TypeId.BAG.getSpecializedId(CLSSid_Behavior);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId BAG_CLSSid_Operation = TypeId.BAG.getSpecializedId(CLSSid_Operation);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId BAG_CLSSid_Property = TypeId.BAG.getSpecializedId(CLSSid_Property);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_EnumerationLiteral = TypeId.ORDERED_SET.getSpecializedId(CLSSid_EnumerationLiteral);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Import = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Import);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Operation = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Operation);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Parameter = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Parameter);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Precedence = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Precedence);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Property = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Property);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId ORD_CLSSid_Variable = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Variable);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId SET_CLSSid_Behavior = TypeId.SET.getSpecializedId(CLSSid_Behavior);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId SET_CLSSid_Class = TypeId.SET.getSpecializedId(CLSSid_Class_0);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId SET_CLSSid_DataType = TypeId.SET.getSpecializedId(CLSSid_DataType_0);
-    public static final @NonNull /*@NonInvalid*/ CollectionTypeId SET_CLSSid_Package = TypeId.SET.getSpecializedId(CLSSid_Package);
-    
-    protected @Nullable /*@Thrown*/ Object child;
-    protected final @NonNull /*@Thrown*/ Evaluator evaluator;
-    protected final @NonNull /*@Thrown*/ IdResolver idResolver;
-    
-    public AutoPivotLookupVisitor(@NonNull LookupEnvironment context) {
-        super(context);
-        this.evaluator = context.getEvaluator();
-        this.idResolver = evaluator.getIdResolver();
-    }
-    
-    /**
-     * Return the results of a lookup from the child of element.
-     */
-    public @Nullable LookupEnvironment envForChild(@NonNull Visitable element, @Nullable Visitable child) {
-        this.child = element;
-        return element.accept(this);
-    }
-    
-    /**
-     * Continue the search for matches in the parent of element.
-     */
-    protected @Nullable LookupEnvironment parentEnv(@NonNull EObject element) {
-        EObject parent = element.eContainer();
-        if (parent instanceof Visitable) {
-            this.child = element;
-            return ((Visitable)parent).accept(this);
-        }
-        else {
-            return context;
-        }
-    }
-    
-    @Override
-    public @Nullable LookupEnvironment visiting(@NonNull Visitable visitable) {
-        throw new UnsupportedOperationException("AutoPivotLookupVisitor is not supported by \"" + getClass().getName() + "\"");
-    }
-    
-    /**
-     * visitClass(element : Class) : lookup::Environment[?]
-     * 
-     * 
-     * let superClasses : Set(Class) = element->closure(superClasses)
-     * in
-     *   let
-     *     inner : lookup::Environment = context.addElements(
-     *       superClasses.ownedProperties->select(not isStatic))
-     *     .addElements(
-     *       superClasses.ownedOperations->select(not isStatic))
-     *     .addElements(superClasses.ownedBehaviors)
-     *   in
-     *     if inner.hasFinalResult()
-     *     then inner
-     *     else this.parentEnv(element)
-     *     endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitClass(final @NonNull /*@NonInvalid*/ Class element) {
-        final @NonNull /*@NonInvalid*/ IdResolver idResolver = evaluator.getIdResolver();
-        final @NonNull /*@NonInvalid*/ StandardLibrary standardLibrary = idResolver.getStandardLibrary();
-        final @NonNull /*@Thrown*/ SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Class, element);
-        final @NonNull Class TYPE_superClasses_1 = evaluator.getStaticTypeOf(oclAsSet);
-        final @NonNull LibraryIteration IMPL_superClasses_1 = (LibraryIteration)TYPE_superClasses_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
-        final @NonNull Object ACC_superClasses_1 = IMPL_superClasses_1.createAccumulatorValue(evaluator, SET_CLSSid_Class, SET_CLSSid_Class);
-        /**
-         * Implementation of the iterator body.
-         */
-        final @NonNull AbstractBinaryOperation BODY_superClasses_1 = new AbstractBinaryOperation()
-        {
-            /**
-             * superClasses
-             */
-            @Override
-            public @Nullable Object evaluate(final @NonNull Evaluator evaluator, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final @Nullable /*@NonInvalid*/ Object _1) {
-                final @Nullable /*@NonInvalid*/ Class symbol_0 = (Class)_1;
-                if (symbol_0 == null) {
-                    throw new InvalidValueException("Null source for \'pivot::Class::superClasses\'");
-                }
-                final @NonNull /*@Thrown*/ List<Class> superClasses_0 = symbol_0.getSuperClasses();
-                final @NonNull /*@Thrown*/ SetValue BOXED_superClasses_0 = idResolver.createSetOfAll(SET_CLSSid_Class, superClasses_0);
-                return BOXED_superClasses_0;
-            }
-        };
-        final @NonNull  ExecutorSingleIterationManager MGR_superClasses_1 = new ExecutorSingleIterationManager(evaluator, SET_CLSSid_Class, BODY_superClasses_1, oclAsSet, ACC_superClasses_1);
-        final @NonNull /*@Thrown*/ SetValue superClasses = ClassUtil.nonNullState((SetValue)IMPL_superClasses_1.evaluateIteration(MGR_superClasses_1));
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Property);
-        @Nullable Iterator<?> ITERATOR__1_0 = superClasses.iterator();
-        @NonNull /*@Thrown*/ BagValue collect;
-        while (true) {
-            if (!ITERATOR__1_0.hasNext()) {
-                collect = accumulator;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Class _1_0 = (Class)ITERATOR__1_0.next();
-            /**
-             * ownedProperties
-             */
-            if (_1_0 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Class::ownedProperties\'");
-            }
-            final @NonNull /*@Thrown*/ List<Property> ownedProperties = _1_0.getOwnedProperties();
-            final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedProperties = idResolver.createOrderedSetOfAll(ORD_CLSSid_Property, ownedProperties);
-            //
-            for (Object value : BOXED_ownedProperties.flatten().getElements()) {
-                accumulator.add(value);
-            }
-        }
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_0 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Property);
-        @Nullable Iterator<?> ITERATOR__1_1 = collect.iterator();
-        @NonNull /*@Thrown*/ BagValue select;
-        while (true) {
-            if (!ITERATOR__1_1.hasNext()) {
-                select = accumulator_0;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Property _1_1 = (Property)ITERATOR__1_1.next();
-            /**
-             * not isStatic
-             */
-            if (_1_1 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic = _1_1.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not = BooleanNotOperation.INSTANCE.evaluate(isStatic);
-            if (not == null) {
-                throw new InvalidValueException("Null body for \'Bag(T).select(Bag.T[?] | Lambda T() : Boolean) : Bag(T)\'");
-            }
-            //
-            if (not == ValueUtil.TRUE_VALUE) {
-                accumulator_0.add(_1_1);
-            }
-        }
-        final List<Property> UNBOXED_select = select.asEcoreObjects(idResolver, Property.class);
-        assert UNBOXED_select != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)UNBOXED_select);
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_1 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Operation);
-        @Nullable Iterator<?> ITERATOR__1_2 = superClasses.iterator();
-        @NonNull /*@Thrown*/ BagValue collect_0;
-        while (true) {
-            if (!ITERATOR__1_2.hasNext()) {
-                collect_0 = accumulator_1;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Class _1_2 = (Class)ITERATOR__1_2.next();
-            /**
-             * ownedOperations
-             */
-            if (_1_2 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Class::ownedOperations\'");
-            }
-            final @NonNull /*@Thrown*/ List<Operation> ownedOperations = _1_2.getOwnedOperations();
-            final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedOperations = idResolver.createOrderedSetOfAll(ORD_CLSSid_Operation, ownedOperations);
-            //
-            for (Object value : BOXED_ownedOperations.flatten().getElements()) {
-                accumulator_1.add(value);
-            }
-        }
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_2 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Operation);
-        @Nullable Iterator<?> ITERATOR__1_3 = collect_0.iterator();
-        @NonNull /*@Thrown*/ BagValue select_0;
-        while (true) {
-            if (!ITERATOR__1_3.hasNext()) {
-                select_0 = accumulator_2;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Operation _1_3 = (Operation)ITERATOR__1_3.next();
-            /**
-             * not isStatic
-             */
-            if (_1_3 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic_0 = _1_3.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not_0 = BooleanNotOperation.INSTANCE.evaluate(isStatic_0);
-            if (not_0 == null) {
-                throw new InvalidValueException("Null body for \'Bag(T).select(Bag.T[?] | Lambda T() : Boolean) : Bag(T)\'");
-            }
-            //
-            if (not_0 == ValueUtil.TRUE_VALUE) {
-                accumulator_2.add(_1_3);
-            }
-        }
-        final List<Operation> UNBOXED_select_0 = select_0.asEcoreObjects(idResolver, Operation.class);
-        assert UNBOXED_select_0 != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements_0 = addElements.addElements((Collection)UNBOXED_select_0);
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_3 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Behavior);
-        @Nullable Iterator<?> ITERATOR__1_4 = superClasses.iterator();
-        @NonNull /*@Thrown*/ BagValue collect_1;
-        while (true) {
-            if (!ITERATOR__1_4.hasNext()) {
-                collect_1 = accumulator_3;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Class _1_4 = (Class)ITERATOR__1_4.next();
-            /**
-             * ownedBehaviors
-             */
-            if (_1_4 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Class::ownedBehaviors\'");
-            }
-            final @NonNull /*@Thrown*/ List<Behavior> ownedBehaviors = _1_4.getOwnedBehaviors();
-            final @NonNull /*@Thrown*/ SetValue BOXED_ownedBehaviors = idResolver.createSetOfAll(SET_CLSSid_Behavior, ownedBehaviors);
-            //
-            for (Object value : BOXED_ownedBehaviors.flatten().getElements()) {
-                accumulator_3.add(value);
-            }
-        }
-        final List<Behavior> UNBOXED_collect_1 = collect_1.asEcoreObjects(idResolver, Behavior.class);
-        assert UNBOXED_collect_1 != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements_0.addElements((Collection)UNBOXED_collect_1);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-        if (hasFinalResult) {
-            symbol_1 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element);
-            symbol_1 = parentEnv;
-        }
-        return symbol_1;
-    }
-    
-    /**
-     * visitDataType(element : DataType) : lookup::Environment[?]
-     * 
-     * 
-     * let
-     *   superClasses : Set(Class) = element->closure(c | c.superClasses->asSet())
-     * in
-     *   let
-     *     inner : lookup::Environment = context.addElements(
-     *       superClasses.ownedProperties->select(not isStatic))
-     *     .addElements(
-     *       superClasses.ownedOperations->select(not isStatic))
-     *   in
-     *     if inner.hasFinalResult()
-     *     then inner
-     *     else this.parentEnv(element)
-     *     endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitDataType(final @NonNull /*@NonInvalid*/ DataType element_0) {
-        final @NonNull /*@NonInvalid*/ IdResolver idResolver = evaluator.getIdResolver();
-        final @NonNull /*@NonInvalid*/ StandardLibrary standardLibrary = idResolver.getStandardLibrary();
-        final @NonNull /*@Thrown*/ SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_DataType, element_0);
-        final @NonNull Class TYPE_superClasses_1 = evaluator.getStaticTypeOf(oclAsSet);
-        final @NonNull LibraryIteration IMPL_superClasses_1 = (LibraryIteration)TYPE_superClasses_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
-        final @NonNull Object ACC_superClasses_1 = IMPL_superClasses_1.createAccumulatorValue(evaluator, SET_CLSSid_Class, SET_CLSSid_Class);
-        /**
-         * Implementation of the iterator body.
-         */
-        final @NonNull AbstractBinaryOperation BODY_superClasses_1 = new AbstractBinaryOperation()
-        {
-            /**
-             * c.superClasses->asSet()
-             */
-            @Override
-            public @Nullable Object evaluate(final @NonNull Evaluator evaluator, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final @Nullable /*@NonInvalid*/ Object c) {
-                final @Nullable /*@NonInvalid*/ Class symbol_0 = (Class)c;
-                if (symbol_0 == null) {
-                    throw new InvalidValueException("Null source for \'pivot::Class::superClasses\'");
-                }
-                final @NonNull /*@Thrown*/ List<Class> superClasses_0 = symbol_0.getSuperClasses();
-                final @NonNull /*@Thrown*/ SetValue BOXED_superClasses_0 = idResolver.createSetOfAll(SET_CLSSid_Class, superClasses_0);
-                final @NonNull /*@Thrown*/ SetValue asSet = CollectionAsSetOperation.INSTANCE.evaluate(BOXED_superClasses_0);
-                return asSet;
-            }
-        };
-        final @NonNull  ExecutorSingleIterationManager MGR_superClasses_1 = new ExecutorSingleIterationManager(evaluator, SET_CLSSid_Class, BODY_superClasses_1, oclAsSet, ACC_superClasses_1);
-        final @NonNull /*@Thrown*/ SetValue superClasses = ClassUtil.nonNullState((SetValue)IMPL_superClasses_1.evaluateIteration(MGR_superClasses_1));
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Property);
-        @Nullable Iterator<?> ITERATOR__1 = superClasses.iterator();
-        @NonNull /*@Thrown*/ BagValue collect;
-        while (true) {
-            if (!ITERATOR__1.hasNext()) {
-                collect = accumulator;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Class _1 = (Class)ITERATOR__1.next();
-            /**
-             * ownedProperties
-             */
-            if (_1 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Class::ownedProperties\'");
-            }
-            final @NonNull /*@Thrown*/ List<Property> ownedProperties = _1.getOwnedProperties();
-            final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedProperties = idResolver.createOrderedSetOfAll(ORD_CLSSid_Property, ownedProperties);
-            //
-            for (Object value : BOXED_ownedProperties.flatten().getElements()) {
-                accumulator.add(value);
-            }
-        }
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_0 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Property);
-        @Nullable Iterator<?> ITERATOR__1_0 = collect.iterator();
-        @NonNull /*@Thrown*/ BagValue select;
-        while (true) {
-            if (!ITERATOR__1_0.hasNext()) {
-                select = accumulator_0;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Property _1_0 = (Property)ITERATOR__1_0.next();
-            /**
-             * not isStatic
-             */
-            if (_1_0 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic = _1_0.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not = BooleanNotOperation.INSTANCE.evaluate(isStatic);
-            if (not == null) {
-                throw new InvalidValueException("Null body for \'Bag(T).select(Bag.T[?] | Lambda T() : Boolean) : Bag(T)\'");
-            }
-            //
-            if (not == ValueUtil.TRUE_VALUE) {
-                accumulator_0.add(_1_0);
-            }
-        }
-        final List<Property> UNBOXED_select = select.asEcoreObjects(idResolver, Property.class);
-        assert UNBOXED_select != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)UNBOXED_select);
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_1 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Operation);
-        @Nullable Iterator<?> ITERATOR__1_1 = superClasses.iterator();
-        @NonNull /*@Thrown*/ BagValue collect_0;
-        while (true) {
-            if (!ITERATOR__1_1.hasNext()) {
-                collect_0 = accumulator_1;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Class _1_1 = (Class)ITERATOR__1_1.next();
-            /**
-             * ownedOperations
-             */
-            if (_1_1 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Class::ownedOperations\'");
-            }
-            final @NonNull /*@Thrown*/ List<Operation> ownedOperations = _1_1.getOwnedOperations();
-            final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedOperations = idResolver.createOrderedSetOfAll(ORD_CLSSid_Operation, ownedOperations);
-            //
-            for (Object value : BOXED_ownedOperations.flatten().getElements()) {
-                accumulator_1.add(value);
-            }
-        }
-        @NonNull /*@Thrown*/ BagValue.Accumulator accumulator_2 = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_Operation);
-        @Nullable Iterator<?> ITERATOR__1_2 = collect_0.iterator();
-        @NonNull /*@Thrown*/ BagValue select_0;
-        while (true) {
-            if (!ITERATOR__1_2.hasNext()) {
-                select_0 = accumulator_2;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Operation _1_2 = (Operation)ITERATOR__1_2.next();
-            /**
-             * not isStatic
-             */
-            if (_1_2 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic_0 = _1_2.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not_0 = BooleanNotOperation.INSTANCE.evaluate(isStatic_0);
-            if (not_0 == null) {
-                throw new InvalidValueException("Null body for \'Bag(T).select(Bag.T[?] | Lambda T() : Boolean) : Bag(T)\'");
-            }
-            //
-            if (not_0 == ValueUtil.TRUE_VALUE) {
-                accumulator_2.add(_1_2);
-            }
-        }
-        final List<Operation> UNBOXED_select_0 = select_0.asEcoreObjects(idResolver, Operation.class);
-        assert UNBOXED_select_0 != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements.addElements((Collection)UNBOXED_select_0);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-        if (hasFinalResult) {
-            symbol_1 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_0);
-            symbol_1 = parentEnv;
-        }
-        return symbol_1;
-    }
-    
-    /**
-     * visitElement(element : Element) : lookup::Environment[?]
-     * 
-     * this.parentEnv(element)
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitElement(final @NonNull /*@NonInvalid*/ Element element_1) {
-        final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_1);
-        return parentEnv;
-    }
-    
-    /**
-     * visitEnumeration(element : Enumeration) : lookup::Environment[?]
-     * 
-     * 
-     * let
-     *   inner : lookup::Environment = context.addElements(element.ownedLiterals)
-     *   .addElements(element.ownedProperties->select(not isStatic))
-     *   .addElements(element.ownedOperations->select(not isStatic))
-     *   .addElements(element.ownedBehaviors)
-     * in
-     *   if inner.hasFinalResult()
-     *   then inner
-     *   else this.parentEnv(element)
-     *   endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitEnumeration(final @NonNull /*@NonInvalid*/ Enumeration element_2) {
-        final @NonNull /*@Thrown*/ List<EnumerationLiteral> ownedLiterals = element_2.getOwnedLiterals();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)ownedLiterals);
-        final @NonNull /*@Thrown*/ List<Property> ownedProperties = element_2.getOwnedProperties();
-        final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedProperties = idResolver.createOrderedSetOfAll(ORD_CLSSid_Property, ownedProperties);
-        @NonNull /*@Thrown*/ OrderedSetValue.Accumulator accumulator = ValueUtil.createOrderedSetAccumulatorValue(ORD_CLSSid_Property);
-        @Nullable Iterator<?> ITERATOR__1 = BOXED_ownedProperties.iterator();
-        @NonNull /*@Thrown*/ OrderedSetValue select;
-        while (true) {
-            if (!ITERATOR__1.hasNext()) {
-                select = accumulator;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Property _1 = (Property)ITERATOR__1.next();
-            /**
-             * not isStatic
-             */
-            if (_1 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic = _1.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not = BooleanNotOperation.INSTANCE.evaluate(isStatic);
-            if (not == null) {
-                throw new InvalidValueException("Null body for \'OrderedSet(T).select(OrderedSet.T[?] | Lambda T() : Boolean) : OrderedSet(T)\'");
-            }
-            //
-            if (not == ValueUtil.TRUE_VALUE) {
-                accumulator.add(_1);
-            }
-        }
-        final List<Property> UNBOXED_select = select.asEcoreObjects(idResolver, Property.class);
-        assert UNBOXED_select != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements_0 = addElements.addElements((Collection)UNBOXED_select);
-        final @NonNull /*@Thrown*/ List<Operation> ownedOperations = element_2.getOwnedOperations();
-        final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedOperations = idResolver.createOrderedSetOfAll(ORD_CLSSid_Operation, ownedOperations);
-        @NonNull /*@Thrown*/ OrderedSetValue.Accumulator accumulator_0 = ValueUtil.createOrderedSetAccumulatorValue(ORD_CLSSid_Operation);
-        @Nullable Iterator<?> ITERATOR__1_0 = BOXED_ownedOperations.iterator();
-        @NonNull /*@Thrown*/ OrderedSetValue select_0;
-        while (true) {
-            if (!ITERATOR__1_0.hasNext()) {
-                select_0 = accumulator_0;
-                break;
-            }
-            @Nullable /*@NonInvalid*/ Operation _1_0 = (Operation)ITERATOR__1_0.next();
-            /**
-             * not isStatic
-             */
-            if (_1_0 == null) {
-                throw new InvalidValueException("Null source for \'pivot::Feature::isStatic\'");
-            }
-            final @Nullable /*@Thrown*/ Boolean isStatic_0 = _1_0.isIsStatic();
-            final @Nullable /*@Thrown*/ Boolean not_0 = BooleanNotOperation.INSTANCE.evaluate(isStatic_0);
-            if (not_0 == null) {
-                throw new InvalidValueException("Null body for \'OrderedSet(T).select(OrderedSet.T[?] | Lambda T() : Boolean) : OrderedSet(T)\'");
-            }
-            //
-            if (not_0 == ValueUtil.TRUE_VALUE) {
-                accumulator_0.add(_1_0);
-            }
-        }
-        final List<Operation> UNBOXED_select_0 = select_0.asEcoreObjects(idResolver, Operation.class);
-        assert UNBOXED_select_0 != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements_1 = addElements_0.addElements((Collection)UNBOXED_select_0);
-        final @NonNull /*@Thrown*/ List<Behavior> ownedBehaviors = element_2.getOwnedBehaviors();
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements_1.addElements((Collection)ownedBehaviors);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-        if (hasFinalResult) {
-            symbol_0 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_2);
-            symbol_0 = parentEnv;
-        }
-        return symbol_0;
-    }
-    
-    /**
-     * visitExpressionInOCL(element : ExpressionInOCL) : lookup::Environment[?]
-     * 
-     * 
-     * let
-     *   inner : lookup::Environment = context.addElement(element.ownedContext)
-     *   .addElements(element.ownedParameters)
-     *   .addElement(element.ownedResult)
-     * in
-     *   if inner.hasFinalResult()
-     *   then inner
-     *   else this.parentEnv(element)
-     *   endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitExpressionInOCL(final @NonNull /*@NonInvalid*/ ExpressionInOCL element_3) {
-        final @Nullable /*@Thrown*/ Variable ownedContext = element_3.getOwnedContext();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElement = context.addElement((NamedElement)ownedContext);
-        final @NonNull /*@Thrown*/ List<Variable> ownedParameters = element_3.getOwnedParameters();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = addElement.addElements((Collection)ownedParameters);
-        final @Nullable /*@Thrown*/ Variable ownedResult = element_3.getOwnedResult();
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements.addElement((NamedElement)ownedResult);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-        if (hasFinalResult) {
-            symbol_0 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_3);
-            symbol_0 = parentEnv;
-        }
-        return symbol_0;
-    }
-    
-    /**
-     * visitIterateExp(element : IterateExp) : lookup::Environment[?]
-     * 
-     * 
-     * if child = ownedResult
-     * then
-     *   let
-     *     inner : lookup::Environment = context.addElements(element.ownedIterators)
-     *   in
-     *     if inner.hasFinalResult()
-     *     then inner
-     *     else this.parentEnv(element)
-     *     endif
-     * else
-     *   let index : Integer = ownedIterators->indexOf(child)
-     *   in
-     *     if index > 1
-     *     then
-     *       let
-     *         inner : lookup::Environment = context.addElements(
-     *           element.ownedIterators->subOrderedSet(1, index - 1))
-     *       in
-     *         if inner.hasFinalResult()
-     *         then inner
-     *         else this.parentEnv(element)
-     *         endif
-     *     else
-     *       let
-     *         inner : lookup::Environment = context.addElements(element.ownedIterators)
-     *         .addElement(ownedResult)
-     *       in
-     *         if inner.hasFinalResult()
-     *         then inner
-     *         else this.parentEnv(element)
-     *         endif
-     *     endif
-     * endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitIterateExp(final @NonNull /*@NonInvalid*/ IterateExp element_4) {
-        final @NonNull /*@Thrown*/ List<Variable> ownedIterators = element_4.getOwnedIterators();
-        final @Nullable /*@Thrown*/ Variable ownedResult = element_4.getOwnedResult();
-        final /*@Thrown*/ boolean eq = (child != null) ? child.equals(ownedResult) : (ownedResult == null);
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_4;
-        if (eq) {
-            final @NonNull /*@Thrown*/ LookupEnvironment inner = context.addElements((Collection)ownedIterators);
-            final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-            if (hasFinalResult) {
-                symbol_0 = inner;
-            }
-            else {
-                final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_4);
-                symbol_0 = parentEnv;
-            }
-            symbol_4 = symbol_0;
-        }
-        else {
-            final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedIterators_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_Variable, ownedIterators);
-            final @NonNull /*@Thrown*/ IntegerValue index = OrderedCollectionIndexOfOperation.INSTANCE.evaluate(BOXED_ownedIterators_0, child);
-            final /*@Thrown*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(evaluator, index, INT_1).booleanValue();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_3;
-            if (gt) {
-                final @NonNull /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(index, INT_1);
-                final @NonNull /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_ownedIterators_0, INT_1, diff);
-                final List<Variable> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, Variable.class);
-                assert UNBOXED_subOrderedSet != null;
-                final @NonNull /*@Thrown*/ LookupEnvironment inner_0 = context.addElements((Collection)UNBOXED_subOrderedSet);
-                final /*@Thrown*/ boolean hasFinalResult_0 = inner_0.hasFinalResult();
-                @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-                if (hasFinalResult_0) {
-                    symbol_1 = inner_0;
-                }
-                else {
-                    final @Nullable /*@Thrown*/ LookupEnvironment parentEnv_0 = this.parentEnv(element_4);
-                    symbol_1 = parentEnv_0;
-                }
-                symbol_3 = symbol_1;
-            }
-            else {
-                final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)ownedIterators);
-                final @NonNull /*@Thrown*/ LookupEnvironment inner_1 = addElements.addElement((NamedElement)ownedResult);
-                final /*@Thrown*/ boolean hasFinalResult_1 = inner_1.hasFinalResult();
-                @Nullable /*@Thrown*/ LookupEnvironment symbol_2;
-                if (hasFinalResult_1) {
-                    symbol_2 = inner_1;
-                }
-                else {
-                    final @Nullable /*@Thrown*/ LookupEnvironment parentEnv_1 = this.parentEnv(element_4);
-                    symbol_2 = parentEnv_1;
-                }
-                symbol_3 = symbol_2;
-            }
-            symbol_4 = symbol_3;
-        }
-        return symbol_4;
-    }
-    
-    /**
-     * visitIteratorExp(element : IteratorExp) : lookup::Environment[?]
-     * 
-     * 
-     * let index : Integer = ownedIterators->indexOf(child)
-     * in
-     *   if index > 1
-     *   then
-     *     let
-     *       inner : lookup::Environment = context.addElements(
-     *         element.ownedIterators->subOrderedSet(1, index - 1))
-     *     in
-     *       if inner.hasFinalResult()
-     *       then inner
-     *       else this.parentEnv(element)
-     *       endif
-     *   else
-     *     let
-     *       inner : lookup::Environment = context.addElements(element.ownedIterators)
-     *     in
-     *       if inner.hasFinalResult()
-     *       then inner
-     *       else this.parentEnv(element)
-     *       endif
-     *   endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitIteratorExp(final @NonNull /*@NonInvalid*/ IteratorExp element_5) {
-        final @NonNull /*@Thrown*/ List<Variable> ownedIterators = element_5.getOwnedIterators();
-        final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedIterators = idResolver.createOrderedSetOfAll(ORD_CLSSid_Variable, ownedIterators);
-        final @NonNull /*@Thrown*/ IntegerValue index = OrderedCollectionIndexOfOperation.INSTANCE.evaluate(BOXED_ownedIterators, child);
-        final /*@Thrown*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(evaluator, index, INT_1).booleanValue();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_2;
-        if (gt) {
-            final @NonNull /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(index, INT_1);
-            final @NonNull /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_ownedIterators, INT_1, diff);
-            final List<Variable> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, Variable.class);
-            assert UNBOXED_subOrderedSet != null;
-            final @NonNull /*@Thrown*/ LookupEnvironment inner = context.addElements((Collection)UNBOXED_subOrderedSet);
-            final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-            if (hasFinalResult) {
-                symbol_0 = inner;
-            }
-            else {
-                final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_5);
-                symbol_0 = parentEnv;
-            }
-            symbol_2 = symbol_0;
-        }
-        else {
-            final @NonNull /*@Thrown*/ LookupEnvironment inner_0 = context.addElements((Collection)ownedIterators);
-            final /*@Thrown*/ boolean hasFinalResult_0 = inner_0.hasFinalResult();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-            if (hasFinalResult_0) {
-                symbol_1 = inner_0;
-            }
-            else {
-                final @Nullable /*@Thrown*/ LookupEnvironment parentEnv_0 = this.parentEnv(element_5);
-                symbol_1 = parentEnv_0;
-            }
-            symbol_2 = symbol_1;
-        }
-        return symbol_2;
-    }
-    
-    /**
-     * visitLetExp(element : LetExp) : lookup::Environment[?]
-     * 
-     * 
-     * if child = ownedIn
-     * then
-     *   let
-     *     inner : lookup::Environment = context.addElement(element.ownedVariable)
-     *   in
-     *     if inner.hasFinalResult()
-     *     then inner
-     *     else this.parentEnv(element)
-     *     endif
-     * else this.parentEnv(element)
-     * endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitLetExp(final @NonNull /*@NonInvalid*/ LetExp element_6) {
-        final @Nullable /*@Thrown*/ OCLExpression ownedIn = element_6.getOwnedIn();
-        final /*@Thrown*/ boolean eq = (child != null) ? child.equals(ownedIn) : (ownedIn == null);
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-        if (eq) {
-            final @Nullable /*@Thrown*/ Variable ownedVariable = element_6.getOwnedVariable();
-            final @NonNull /*@Thrown*/ LookupEnvironment inner = context.addElement((NamedElement)ownedVariable);
-            final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-            if (hasFinalResult) {
-                symbol_0 = inner;
-            }
-            else {
-                final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_6);
-                symbol_0 = parentEnv;
-            }
-            symbol_1 = symbol_0;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv_0 = this.parentEnv(element_6);
-            symbol_1 = parentEnv_0;
-        }
-        return symbol_1;
-    }
-    
-    /**
-     * visitLibrary(element : Library) : lookup::Environment[?]
-     * 
-     * 
-     * let
-     *   inner : lookup::Environment = context.addElements(element.ownedPackages)
-     *   .addElements(element.ownedClasses)
-     *   .addElements(element.ownedPrecedences)
-     * in
-     *   if inner.hasFinalResult()
-     *   then inner
-     *   else this.parentEnv(element)
-     *   endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitLibrary(final @NonNull /*@NonInvalid*/ Library element_7) {
-        final @NonNull /*@Thrown*/ List<Package> ownedPackages = element_7.getOwnedPackages();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)ownedPackages);
-        final @NonNull /*@Thrown*/ List<Class> ownedClasses = element_7.getOwnedClasses();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements_0 = addElements.addElements((Collection)ownedClasses);
-        final @Nullable /*@Thrown*/ List<Precedence> ownedPrecedences = element_7.getOwnedPrecedences();
-        assert ownedPrecedences != null;
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements_0.addElements((Collection)ownedPrecedences);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-        if (hasFinalResult) {
-            symbol_0 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_7);
-            symbol_0 = parentEnv;
-        }
-        return symbol_0;
-    }
-    
-    /**
-     * visitModel(element : Model) : lookup::Environment[?]
-     * 
-     * 
-     * this.parentEnv(element)
-     * .addElements(element.ownedImports)
-     * .addElements(element.ownedPackages)
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitModel(final @NonNull /*@NonInvalid*/ Model element_8) {
-        final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_8);
-        if (parentEnv == null) {
-            throw new InvalidValueException("Null source for \'lookup::Environment::addElements(Collection(pivot::NamedElement)) : lookup::Environment\'");
-        }
-        final @NonNull /*@Thrown*/ List<Import> ownedImports = element_8.getOwnedImports();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = parentEnv.addElements((Collection)ownedImports);
-        final @NonNull /*@Thrown*/ List<Package> ownedPackages = element_8.getOwnedPackages();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements_0 = addElements.addElements((Collection)ownedPackages);
-        return addElements_0;
-    }
-    
-    /**
-     * visitOperation(element : Operation) : lookup::Environment[?]
-     * 
-     * 
-     * if ownedParameters->includes(child)
-     * then this.parentEnv(element)
-     * else
-     *   let
-     *     inner : lookup::Environment = context.addElements(element.ownedParameters)
-     *   in
-     *     if inner.hasFinalResult()
-     *     then inner
-     *     else this.parentEnv(element)
-     *     endif
-     * endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitOperation(final @NonNull /*@NonInvalid*/ Operation element_9) {
-        final @NonNull /*@Thrown*/ List<Parameter> ownedParameters = element_9.getOwnedParameters();
-        final @NonNull /*@Thrown*/ OrderedSetValue BOXED_ownedParameters = idResolver.createOrderedSetOfAll(ORD_CLSSid_Parameter, ownedParameters);
-        final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(BOXED_ownedParameters, child).booleanValue();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_1;
-        if (includes) {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_9);
-            symbol_1 = parentEnv;
-        }
-        else {
-            final @NonNull /*@Thrown*/ LookupEnvironment inner = context.addElements((Collection)ownedParameters);
-            final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-            @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-            if (hasFinalResult) {
-                symbol_0 = inner;
-            }
-            else {
-                final @Nullable /*@Thrown*/ LookupEnvironment parentEnv_0 = this.parentEnv(element_9);
-                symbol_0 = parentEnv_0;
-            }
-            symbol_1 = symbol_0;
-        }
-        return symbol_1;
-    }
-    
-    /**
-     * visitPackage(element : Package) : lookup::Environment[?]
-     * 
-     * 
-     * let
-     *   inner : lookup::Environment = context.addElements(element.ownedPackages)
-     *   .addElements(element.ownedClasses)
-     * in
-     *   if inner.hasFinalResult()
-     *   then inner
-     *   else this.parentEnv(element)
-     *   endif
-     */
-    @Override
-    public @Nullable /*@NonInvalid*/ LookupEnvironment visitPackage(final @NonNull /*@NonInvalid*/ Package element_10) {
-        final @NonNull /*@Thrown*/ List<Package> ownedPackages = element_10.getOwnedPackages();
-        final @NonNull /*@Thrown*/ LookupEnvironment addElements = context.addElements((Collection)ownedPackages);
-        final @NonNull /*@Thrown*/ List<Class> ownedClasses = element_10.getOwnedClasses();
-        final @NonNull /*@Thrown*/ LookupEnvironment inner = addElements.addElements((Collection)ownedClasses);
-        final /*@Thrown*/ boolean hasFinalResult = inner.hasFinalResult();
-        @Nullable /*@Thrown*/ LookupEnvironment symbol_0;
-        if (hasFinalResult) {
-            symbol_0 = inner;
-        }
-        else {
-            final @Nullable /*@Thrown*/ LookupEnvironment parentEnv = this.parentEnv(element_10);
-            symbol_0 = parentEnv;
-        }
-        return symbol_0;
-    }
-}
diff --git a/plugins/org.eclipse.ocl.pivot/model/Pivot.start.ecore b/plugins/org.eclipse.ocl.pivot/model/Pivot.start.ecore
deleted file mode 100644
index 902e23f..0000000
--- a/plugins/org.eclipse.ocl.pivot/model/Pivot.start.ecore
+++ /dev/null
@@ -1,2192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="pivot" nsURI="http://www.eclipse.org/ocl/2015/Pivot" nsPrefix="pivot">
-  <eAnnotations source="http://www.eclipse.org/OCL/ASMetamodel"/>
-  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
-    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
-    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
-  </eAnnotations>
-  <eClassifiers xsi:type="ecore:EDataType" name="Boolean" instanceClassName="boolean">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A Boolean type is used for logical expression, consisting of the predefined values true and false."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="Integer" instanceClassName="java.lang.Number">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An integer is a primitive type representing integer values."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="LibraryFeature" instanceClassName="org.eclipse.ocl.pivot.library.LibraryFeature"/>
-  <eClassifiers xsi:type="ecore:EDataType" name="Object" instanceClassName="java.lang.Object"/>
-  <eClassifiers xsi:type="ecore:EDataType" name="Real" instanceClassName="java.lang.Number"/>
-  <eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A string is a sequence of characters in some suitable character set used to display information about the model. Character sets may include non-Roman alphabets and characters."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="Throwable" instanceClassName="java.lang.Throwable"/>
-  <eClassifiers xsi:type="ecore:EDataType" name="UnlimitedNatural" instanceClassName="java.lang.Number">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An unlimited natural is a primitive type representing unlimited natural values."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="AssociativityKind">
-    <eLiterals name="left"/>
-    <eLiterals name="right" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="CollectionKind">
-    <eLiterals name="Collection"/>
-    <eLiterals name="Set" value="1"/>
-    <eLiterals name="OrderedSet" value="2"/>
-    <eLiterals name="Bag" value="3"/>
-    <eLiterals name="Sequence" value="4"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="PseudostateKind is an enumeration type."/>
-    </eAnnotations>
-    <eLiterals name="initial">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An initial pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state. There can be at most one initial vertex in a region. The outgoing transition from the initial vertex may have a behavior, but not a trigger or guard."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="deepHistory" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="DeepHistory represents the most recent active configuration of the composite state that directly contains this pseudostate; e.g. the state configuration that was active when the composite state was last exited. A composite state can have at most one deep history vertex. At most one transition may originate from the history connector to the default deep history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a deep history are performed."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="shallowHistory" value="2">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="ShallowHistory represents the most recent active substate of its containing state (but not the substates of that substate). A composite state can have at most one shallow history vertex. A transition coming into the shallow history vertex is equivalent to a transition coming into the most recent active substate of a state. At most one transition may originate from the history connector to the default shallow history state. This transition is taken in case the composite state had never been active before. Entry actions of states entered on the path to the state represented by a shallow history are performed."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="join" value="3">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Join vertices serve to merge several transitions emanating from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="fork" value="4">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices&#xA;(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="junction" value="5">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Junction vertices are semantic-free vertices that are used to chain together multiple transitions. They are used to construct compound transition paths between states. For example, a junction can be used to converge multiple incoming transitions into a single outgoing transition representing a shared transition path (this is known as an merge). Conversely, they can be used to split an incoming transition into multiple outgoing transition segments with different guard conditions. This realizes a static conditional branch. (In the latter case, outgoing transitions whose guard conditions evaluate to false are disabled. A predefined guard denoted 'else' may be defined for at most one outgoing transition. This transition is enabled if all the guards labeling the other transitions are false.) Static conditional branches are distinct from dynamic conditional branches that are realized by choice vertices (described below)."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="choice" value="6">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Choice vertices which, when reached, result in the dynamic evaluation of the guards of the triggers of its outgoing transitions. This realizes a dynamic conditional branch. It allows splitting of transitions into multiple outgoing paths such that the decision on which path to take may be a function of the results of prior actions performed in the same run-tocompletion step. If more than one of the guards evaluates to true, an arbitrary one is selected. If none of the guards evaluates to true, then the model is considered ill-formed. (To avoid this, it is recommended to define one outgoing transition with the predefined else guard for every choice vertex.) Choice vertices should be distinguished from static branch points that are based on junction points (described above)."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="entryPoint" value="7">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An entry point pseudostate is an entry point of a state machine or composite state. In each region of the state machine or composite state it has a single transition to a vertex within the same region."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="exitPoint" value="8">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An exit point pseudostate is an exit point of a state machine or composite state. Entering an exit point within any region of the composite state or state machine referenced by a submachine state implies the exit of this composite state or submachine state and the triggering of the transition that has this exit point as source in the state machine enclosing the submachine or composite state."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="terminate" value="9">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Entering a terminate pseudostate implies that the execution of this state machine by means of its context object is terminated. The state machine does not exit any states nor does it perform any exit actions other than those associated with the transition leading to the terminate pseudostate. Entering a terminate pseudostate is equivalent to invoking a DestroyObjectAction."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="TransitionKind is an enumeration type."/>
-    </eAnnotations>
-    <eLiterals name="internal">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, occurs without exiting or entering the source state. Thus, it does not cause a state change. This means that the entry or exit condition of the source state will not be invoked. An internal transition can be taken even if the state machine is in one or more regions nested within this state."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="local" value="1">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, will not exit the composite (source) state, but it will apply to any state within the composite state, and these will be exited and entered."/>
-      </eAnnotations>
-    </eLiterals>
-    <eLiterals name="external" value="2">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Implies that the transition, if triggered, will exit the composite (source) state."/>
-      </eAnnotations>
-    </eLiterals>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedContents" upperBound="-1"
-        eType="#//Element" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDetails" upperBound="-1"
-        eType="#//Detail" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1"
-        eType="#//Element"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AnyType" eSuperTypes="#//Class"/>
-  <eClassifiers xsi:type="ecore:EClass" name="AssociationClass" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="unownedAttributes" ordered="false"
-        upperBound="-1" eType="#//Property" eOpposite="#//Property/associationClass"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AssociationClassCallExp" eSuperTypes="#//NavigationCallExp">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredAssociationClass"
-        eType="#//AssociationClass"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BagType" eSuperTypes="#//CollectionType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Behavior" abstract="true" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTransition" eType="#//Transition"
-        eOpposite="#//Transition/ownedEffect"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BooleanLiteralExp" eSuperTypes="#//PrimitiveLiteralExp">
-    <eOperations name="TypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="booleanSymbol" lowerBound="1"
-        eType="#//Boolean" unsettable="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallExp" abstract="true" eSuperTypes="#//OCLExpression">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isImplicit" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSource" eType="#//OCLExpression"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallOperationAction" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="operation" lowerBound="1"
-        eType="#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//Type #//Namespace #//TemplateableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A class is a type that has objects as its instances."/>
-    </eAnnotations>
-    <eOperations name="UniqueInvariantName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedInvariants->isUnique(name)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extenders" ordered="false"
-        upperBound="-1" eType="#//StereotypeExtender" eOpposite="#//StereotypeExtender/class"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="True when a class is abstract."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="True when a class is active."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isInterface" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehaviors" ordered="false"
-        upperBound="-1" eType="#//Behavior" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInvariants" ordered="false"
-        upperBound="-1" eType="#//Constraint" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperations" upperBound="-1"
-        eType="#//Operation" containment="true" eOpposite="#//Operation/owningClass">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operations owned by a class. These do not include the inherited operations."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedProperties" upperBound="-1"
-        eType="#//Property" containment="true" eOpposite="#//Property/owningClass">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The attributes owned by a class. These do not include the inherited attributes. Attributes are represented by instances of Property."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPackage" eType="#//Package"
-        eOpposite="#//Package/ownedClasses">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the owning package of this classifier, if any."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="superClasses" ordered="false"
-        upperBound="-1" eType="#//Class">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="subClasses"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The immediate superclasses of a class, from which the class inherits."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionItem" eSuperTypes="#//CollectionLiteralPart">
-    <eOperations name="TypeIsItemType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="type = ownedItem.type&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedItem" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionLiteralExp" eSuperTypes="#//LiteralExp">
-    <eOperations name="BagKindIsBag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="kind = CollectionKind::Bag implies type.oclIsKindOf (BagType)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectionKindIsConcrete" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="kind &lt;> CollectionKind::Collection&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="OrderedSetKindIsOrderedSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="kind = CollectionKind::OrderedSet implies type.oclIsKindOf (OrderedSetType)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SequenceKindIsSequence" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="kind = CollectionKind::Sequence implies type.oclIsKindOf (SequenceType)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SetKindIsSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="kind = CollectionKind::Set implies type.oclIsKindOf (SetType)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//CollectionKind"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParts" upperBound="-1"
-        eType="#//CollectionLiteralPart" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionLiteralPart" abstract="true"
-      eSuperTypes="#//TypedElement"/>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionRange" eSuperTypes="#//CollectionLiteralPart">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedFirst" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLast" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CollectionType" eSuperTypes="#//DataType">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" lowerBound="1"
-        eType="#//Type"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" lowerBound="1" eType="#//Integer"
-        defaultValueLiteral="0"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" lowerBound="1" eType="#//UnlimitedNatural"
-        defaultValueLiteral="*"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElements" ordered="false"
-        upperBound="-1" eType="#//Element" eOpposite="#//Element/annotatingComments">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the Element(s) being commented."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="#//String">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies a string that is the comment."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningElement" eType="#//Element"
-        eOpposite="#//Element/ownedComments"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompleteClass" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningCompletePackage"
-        eType="#//CompletePackage" eOpposite="#//CompletePackage/ownedCompleteClasses"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="partialClasses" ordered="false"
-        upperBound="-1" eType="#//Class"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompleteEnvironment" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCompleteModel" lowerBound="1"
-        eType="#//CompleteModel" containment="true" eOpposite="#//CompleteModel/owningCompleteEnvironment"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStandardLibrary" lowerBound="1"
-        eType="#//StandardLibrary" containment="true" eOpposite="#//StandardLibrary/owningCompleteEnvironment"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompleteModel" eSuperTypes="#//NamedElement">
-    <eOperations name="getOwnedCompletePackage" eType="#//CompletePackage">
-      <eParameters name="name" eType="#//String"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanCompletePackage"
-        eType="#//OrphanCompletePackage" changeable="false" transient="true" derived="true"
-        resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCompletePackages"
-        ordered="false" upperBound="-1" eType="#//CompletePackage" containment="true"
-        eOpposite="#//CompletePackage/owningCompleteModel"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningCompleteEnvironment"
-        eType="#//CompleteEnvironment" eOpposite="#//CompleteEnvironment/ownedCompleteModel"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="partialModels" ordered="false"
-        upperBound="-1" eType="#//Model"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="primitiveCompletePackage"
-        eType="#//PrimitiveCompletePackage" changeable="false" transient="true" derived="true"
-        resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompletePackage" eSuperTypes="#//NamedElement">
-    <eOperations name="getOwnedCompleteClass" eType="#//CompleteClass">
-      <eParameters name="name" eType="#//String"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCompleteClasses" ordered="false"
-        upperBound="-1" eType="#//CompleteClass" containment="true" eOpposite="#//CompleteClass/owningCompletePackage"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCompletePackages"
-        ordered="false" upperBound="-1" eType="#//CompletePackage" containment="true"
-        eOpposite="#//CompletePackage/owningCompletePackage"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningCompleteModel" eType="#//CompleteModel"
-        eOpposite="#//CompleteModel/ownedCompletePackages"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningCompletePackage"
-        eType="#//CompletePackage" eOpposite="#//CompletePackage/ownedCompletePackages"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="partialPackages" ordered="false"
-        upperBound="-1" eType="#//Package"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="entries" ordered="false"
-        upperBound="-1" eType="#//Pseudostate">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="connectionPointReference"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="exits" ordered="false"
-        upperBound="-1" eType="#//Pseudostate">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="connectionPointReference"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningState" eType="#//State"
-        eOpposite="#//State/ownedConnections">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State in which the connection point refreshens are defined."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element."/>
-    </eAnnotations>
-    <eOperations name="UniqueName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="true "/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElements" upperBound="-1"
-        eType="#//Element">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="context" eType="#//Namespace"
-        changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isCallable" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSpecification" lowerBound="1"
-        eType="#//LanguageExpression" containment="true" eOpposite="#//LanguageExpression/owningConstraint">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPostContext" eType="#//Operation"
-        eOpposite="#//Operation/ownedPostconditions"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPreContext" eType="#//Operation"
-        eOpposite="#//Operation/ownedPreconditions"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningState" eType="#//State"
-        eOpposite="#//State/ownedStateInvariant"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTransition" eType="#//Transition"
-        eOpposite="#//Transition/ownedGuard"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConstraints" ordered="false"
-        upperBound="-1" eType="#//Constraint">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="constraint"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConstructorExp" eSuperTypes="#//OCLExpression">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParts" upperBound="-1"
-        eType="#//ConstructorPart" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ConstructorPart" eSuperTypes="#//TypedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInit" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"
-        eType="#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Class">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="DataType is an abstract class that acts as a common superclass for different kinds of data types."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="behavioralClass" eType="#//Class"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSerializable" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Detail" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="values" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DynamicBehavior" eSuperTypes="#//DynamicType #//Behavior"/>
-  <eClassifiers xsi:type="ecore:EClass" name="DynamicElement" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="metaType" lowerBound="1"
-        eType="#//Type"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DynamicProperty" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"
-        eType="#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DynamicType" eSuperTypes="#//Class #//DynamicElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDynamicProperties"
-        ordered="false" upperBound="-1" eType="#//DynamicProperty" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DynamicValueSpecification" eSuperTypes="#//ValueSpecification"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="#//Visitable">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An element is a constituent of a model."/>
-    </eAnnotations>
-    <eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;self->closure(oclContents()->selectByKind(Element))&#xA;&#xA;"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getValue" eType="#//Element">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="null&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="stereotype" lowerBound="1" eType="#//Type"/>
-      <eParameters name="propertyName" lowerBound="1" eType="#//String"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="annotatingComments" ordered="false"
-        upperBound="-1" eType="#//Comment" eOpposite="#//Comment/annotatedElements"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAnnotations" upperBound="-1"
-        eType="#//Element" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedComments" ordered="false"
-        upperBound="-1" eType="#//Comment" containment="true" eOpposite="#//Comment/owningElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Comments owned by this element."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedExtensions" ordered="false"
-        upperBound="-1" eType="#//ElementExtension" containment="true" eOpposite="#//ElementExtension/base"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ElementExtension" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base" lowerBound="1" eType="#//Element"
-        eOpposite="#//Element/ownedExtensions"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isApplied" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="stereotype" lowerBound="1"
-        eType="#//Stereotype"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnumLiteralExp" eSuperTypes="#//LiteralExp">
-    <eOperations name="TypeIsEnumerationType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.type = referredLiteral.owningEnumeration&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredLiteral" eType="#//EnumerationLiteral"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//DataType">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An enumeration defines a set of literals that can be used as its values."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiterals" upperBound="-1"
-        eType="#//EnumerationLiteral" containment="true" eOpposite="#//EnumerationLiteral/owningEnumeration">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The ordered set of literals for this Enumeration."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteral" eSuperTypes="#//InstanceSpecification">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An enumeration literal is a value of an enumeration."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningEnumeration" lowerBound="1"
-        eType="#//Enumeration" eOpposite="#//Enumeration/ownedLiterals">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The Enumeration that this EnumerationLiteral is a member of."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//Integer"
-        defaultValueLiteral="0"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExpressionInOCL" eSuperTypes="#//LanguageExpression">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBody" eType="#//OCLExpression"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedContext" eType="#//Variable"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameters" upperBound="-1"
-        eType="#//Variable" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedResult" eType="#//Variable"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//TypedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" eType="#//LibraryFeature"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationClass" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FeatureCallExp" abstract="true" eSuperTypes="#//CallExp">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isPre" lowerBound="1" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//State">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A special kind of state signifying that the enclosing region is completed. If the enclosing region is directly contained in a state machine and all other regions in the state machine also are completed, then it means that the entire state machine is completed."/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="IfExp" eSuperTypes="#//OCLExpression">
-    <eOperations name="ConditionTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.ownedCondition.type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCondition" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElse" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedThen" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Import" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="importedNamespace" lowerBound="1"
-        eType="#//Namespace"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An instance specification is a model element that represents an instance in a modeled system."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="classes" ordered="false"
-        upperBound="-1" eType="#//Class">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="instanceSpecification"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSlots" ordered="false"
-        upperBound="-1" eType="#//Slot" containment="true" eOpposite="#//Slot/owningInstance">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSpecification" eType="#//LanguageExpression"
-        containment="true">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="owningInstanceSpec"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPackage" eType="#//Package"
-        eOpposite="#//Package/ownedInstances"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="IntegerLiteralExp" eSuperTypes="#//NumericLiteralExp">
-    <eOperations name="TypeIsInteger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.type = Integer&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="integerSymbol" lowerBound="1"
-        eType="#//Integer"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InvalidLiteralExp" eSuperTypes="#//LiteralExp"/>
-  <eClassifiers xsi:type="ecore:EClass" name="InvalidType" eSuperTypes="#//Class"/>
-  <eClassifiers xsi:type="ecore:EClass" name="IterateExp" eSuperTypes="#//LoopExp #//ReferringElement">
-    <eOperations name="BodyTypeConformsToResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedBody.type.conformsTo(ownedResult.type)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="OneInitializer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.ownedResult.ownedInit->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="TypeIsResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="type = ownedResult.type&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedResult" eType="#//Variable"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Iteration" eSuperTypes="#//Operation">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAccumulators" upperBound="-1"
-        eType="#//Parameter" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedIterators" upperBound="-1"
-        eType="#//Parameter" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="IteratorExp" eSuperTypes="#//LoopExp #//ReferringElement">
-    <eOperations name="AnyBodyTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'any' implies ownedBody.type = 'Boolean'&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="AnyHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'any' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="AnyTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'any' implies type = ownedSource.type.oclAsType(CollectionType).elementType&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ClosureBodyTypeIsConformanttoIteratorType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;true&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ClosureElementTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'closure' implies&#xA;type.oclAsType(CollectionType).elementType&#xA;= ownedSource.type.oclAsType(CollectionType).elementType&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ClosureHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'closure' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ClosureSourceElementTypeIsBodyElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'closure' implies&#xA;ownedSource.type.oclAsType(CollectionType).elementType =&#xA;if ownedBody.type.oclIsKindOf(CollectionType)&#xA;then ownedBody.type.oclAsType(CollectionType).elementType&#xA;else ownedBody.type&#xA;endif&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ClosureTypeIsUniqueCollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'closure' implies&#xA;if ownedSource.type.oclIsKindOf(SequenceType) or ownedSource.type.oclIsKindOf(OrderedSetType) then&#xA;type.oclIsKindOf(OrderedSetType)&#xA;else&#xA;type.oclIsKindOf(SetType)&#xA;endif&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectElementTypeIsFlattenedBodyType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collect' implies&#xA;type.oclAsType(CollectionType).elementType = ownedBody.type.flattenedType()&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collect' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectNestedHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collectNested' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectNestedTypeIsBag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collectNested' implies type.oclIsKindOf(BagType)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectNestedTypeIsBodyType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collectNested' implies type = ownedBody.type&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="CollectTypeIsUnordered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'collect' implies&#xA;if ownedSource.type.oclIsKindOf(SequenceType) or ownedSource.type.oclIsKindOf(OrderedSetType) then&#xA;type.oclIsKindOf(SequenceType)&#xA;else&#xA;type.oclIsKindOf(BagType)&#xA;endif&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ExistsBodyTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'exists' implies ownedBody.type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ExistsTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'exists' implies type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ForAllBodyTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'forAll' implies ownedBody.type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ForAllTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'forAll' implies type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="IsUniqueHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'isUnique' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="IsUniqueTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'isUnique' implies type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="IteratorTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.ownedIterators->forAll(ownedSource.type.oclAsType (CollectionType).elementType.conformsTo(type))&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="OneBodyTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'one' implies ownedBody.type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="OneHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'one' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="OneTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'one' implies type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="RejectOrSelectHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'reject' or name = 'select' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="RejectOrSelectTypeIsBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'reject' or name = 'select' implies type = Boolean&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="RejectOrSelectTypeIsSourceType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'reject' or name = 'select' implies type = ownedSource.type&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SortedByElementTypeIsSourceElementType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'sortedBy' implies&#xA;type.oclAsType(CollectionType).elementType =&#xA;ownedBody.type.oclAsType(CollectionType).elementType&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SortedByHasOneIterator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'sortedBy' implies ownedIterators->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SortedByIsOrderedIfSourceIsOrdered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="name = 'sortedBy' implies&#xA;if ownedSource.type.oclIsKindOf(SequenceType) or ownedSource.type.oclIsKindOf(BagType) then&#xA;type.oclIsKindOf(SequenceType)&#xA;else&#xA;type.oclIsKindOf(OrderedSetType)&#xA;endif&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SortedByIteratorTypeIsComparable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;true&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LambdaType" eSuperTypes="#//DataType">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="contextType" lowerBound="1"
-        eType="#//Type"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" unique="false"
-        upperBound="-1" eType="#//Type"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" lowerBound="1"
-        eType="#//Type"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LanguageExpression" abstract="true"
-      eSuperTypes="#//ValueSpecification">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="#//String">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The text of the expression, possibly in multiple languages."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
-        eType="#//String" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningConstraint" eType="#//Constraint"
-        eOpposite="#//Constraint/ownedSpecification"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LetExp" eSuperTypes="#//OCLExpression">
-    <eOperations name="TypeIsInType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="type = ownedIn.type&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedIn" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedVariable" lowerBound="1"
-        eType="#//Variable" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Package">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPrecedences" upperBound="-1"
-        eType="#//Precedence" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LiteralExp" abstract="true" eSuperTypes="#//OCLExpression"/>
-  <eClassifiers xsi:type="ecore:EClass" name="LoopExp" abstract="true" eSuperTypes="#//CallExp">
-    <eOperations name="NoInitializers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self.ownedIterators->forAll(ownedInit->isEmpty())&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="SourceIsCollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedSource.type.oclIsKindOf (CollectionType)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBody" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedIterators" upperBound="-1"
-        eType="#//Variable" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredIteration" eType="#//Iteration"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="MessageExp" eSuperTypes="#//OCLExpression">
-    <eOperations name="OneCallOrOneSend" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedCalledOperation->size() + ownedSentSignal->size() = 1&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="TargetIsNotACollection" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="not ownedTarget.type.oclIsKindOf (CollectionType)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedArguments" upperBound="-1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedCalledOperation" eType="#//CallOperationAction"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSentSignal" eType="#//SendSignalAction"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTarget" lowerBound="1"
-        eType="#//OCLExpression" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="MessageType" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredOperation" eType="#//Operation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredSignal" eType="#//Signal"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//Namespace">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="externalURI" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedImports" upperBound="-1"
-        eType="#//Import" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPackages" ordered="false"
-        upperBound="-1" eType="#//Package" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="MorePivotable" instanceClassName="org.eclipse.ocl.pivot.utilities.MorePivotable"
-      abstract="true" interface="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Nameable" instanceClassName="org.eclipse.ocl.pivot.utilities.Nameable"
-      abstract="true" interface="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element #//Nameable">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A named element represents an element with a name."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//String">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The name of the NamedElement."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConstraints" ordered="false"
-        upperBound="-1" eType="#//Constraint" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NavigationCallExp" abstract="true" eSuperTypes="#//FeatureCallExp">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="navigationSource" eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifiers" upperBound="-1"
-        eType="#//OCLExpression"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NullLiteralExp" eSuperTypes="#//PrimitiveLiteralExp"/>
-  <eClassifiers xsi:type="ecore:EClass" name="NumericLiteralExp" abstract="true" eSuperTypes="#//PrimitiveLiteralExp"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OCLExpression" abstract="true" eSuperTypes="#//TypedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="typeValue" eType="#//Type"
-        transient="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//Feature #//Namespace #//TemplateableElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element.&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
-    </eAnnotations>
-    <eOperations name="CompatibleReturn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="bodyExpression &lt;> null and bodyExpression.oclAsType(ExpressionInOCL).ownedBody &lt;> null implies CompatibleBody(bodyExpression)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="LoadableImplementation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;true&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="UniquePostconditionName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedPostconditions->isUnique(name)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="UniquePreconditionName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedPreconditions->isUnique(name)&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyExpression" eType="#//LanguageExpression"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isInvalidating" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTypeof" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isValidating" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameters" upperBound="-1"
-        eType="#//Parameter" containment="true" eOpposite="#//Parameter/owningOperation">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameters to the operation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPostconditions" ordered="false"
-        upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/owningPostContext"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPreconditions" ordered="false"
-        upperBound="-1" eType="#//Constraint" containment="true" eOpposite="#//Constraint/owningPreContext"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningClass" eType="#//Class"
-        eOpposite="#//Class/ownedOperations">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The class that owns the operation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="precedence" eType="#//Precedence"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="raisedExceptions" ordered="false"
-        upperBound="-1" eType="#//Type">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="operation"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The exceptions that are declared as possible during an invocation of the operation."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperations" ordered="false"
-        upperBound="-1" eType="#//Operation">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="operation"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="OperationCallExp" eSuperTypes="#//FeatureCallExp #//ReferringElement">
-    <eOperations name="ArgumentCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedArguments->size() = referredOperation.ownedParameters->size()&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="ArgumentTypeIsConformant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;let operation : Operation = self.referredOperation in&#xA;&#x9;let parameters : OrderedSet(Parameter) = operation.ownedParameters in&#xA;&#x9;let selfType : Type = operation.owningClass in&#xA;&#x9;Sequence{1..ownedArguments->size()}->forAll (i | &#xA;&#x9;&#x9;let argument : OCLExpression = ownedArguments->at(i) in&#xA;&#x9;&#x9;let parameter : Parameter = parameters->at(i) in&#xA;&#x9;&#x9;let parameterType : Type = parameter.type in&#xA;&#x9;&#x9;let requiredType : Type = if parameter.isTypeof then Class else parameterType.specializeIn(self, selfType) endif in&#xA;&#x9;&#x9;argument.type.conformsTo(requiredType))&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedArguments" upperBound="-1"
-        eType="#//OCLExpression" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredOperation" eType="#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="OppositePropertyCallExp" eSuperTypes="#//NavigationCallExp">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" eType="#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="OrderedSetType" eSuperTypes="#//CollectionType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OrphanCompletePackage" eSuperTypes="#//CompletePackage"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A package is a container for types and other packages."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="URI" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="importedPackages" ordered="false"
-        upperBound="-1" eType="#//Package"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedClasses" ordered="false"
-        upperBound="-1" eType="#//Class" containment="true" eOpposite="#//Class/owningPackage">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of contained types."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInstances" ordered="false"
-        upperBound="-1" eType="#//InstanceSpecification" containment="true" eOpposite="#//InstanceSpecification/owningPackage">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The instance specification that owns this slot."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPackages" ordered="false"
-        upperBound="-1" eType="#//Package" containment="true" eOpposite="#//Package/owningPackage">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of contained packages."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedProfileApplications"
-        ordered="false" upperBound="-1" eType="#//ProfileApplication" containment="true"
-        eOpposite="#//ProfileApplication/owningPackage"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPackage" eType="#//Package"
-        eOpposite="#//Package/ownedPackages">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The containing package."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//VariableDeclaration">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A parameter is a typed element that represents a parameter of an operation."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTypeof" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningOperation" eType="#//Operation"
-        eOpposite="#//Operation/ownedParameters">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The operation that owns the parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Pivotable" instanceClassName="org.eclipse.ocl.pivot.utilities.Pivotable"
-      abstract="true" interface="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Precedence" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="associativity" eType="#//AssociativityKind"
-        defaultValueLiteral="left"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="order" lowerBound="1" eType="#//Integer"
-        defaultValueLiteral="0"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveCompletePackage" eSuperTypes="#//CompletePackage"/>
-  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveLiteralExp" abstract="true"
-      eSuperTypes="#//LiteralExp"/>
-  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A primitive type is a data type implemented by the underlying infrastructure and made available for modeling."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="coercions" upperBound="-1"
-        eType="#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="profileApplications" ordered="false"
-        upperBound="-1" eType="#//ProfileApplication" eOpposite="#//ProfileApplication/appliedProfile"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="appliedProfile" lowerBound="1"
-        eType="#//Profile" eOpposite="#//Profile/profileApplications"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPackage" lowerBound="1"
-        eType="#//Package" eOpposite="#//Package/ownedProfileApplications"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//Feature">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A property is a typed element that represents an attribute of a class."/>
-    </eAnnotations>
-    <eOperations name="CompatibleDefaultExpression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedExpression &lt;> null and ownedExpression.oclAsType(ExpressionInOCL).ownedBody &lt;> null implies CompatibleBody(ownedExpression)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="isAttribute" lowerBound="1" eType="#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;--Type.allInstances()->exists(c| c.ownedAttribute->includes(p))&#xA;let container : ocl::OclElement = oclContainer() in container.oclIsKindOf(Class) and container.oclAsType(Class).ownedProperties->includes(self)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="p" lowerBound="1" eType="#//Property"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="associationClass" eType="#//AssociationClass"
-        eOpposite="#//AssociationClass/unownedAttributes"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//Object"
-        transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An object that defines the initial value for the property when an object of the owning class is instantiated. The value is derived by interpreting the defaultValueString in accordance with the property type."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueString" eType="#//String">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A string that is used to give an initial value for the property when an object of the owning class is instantiated. Interpretation of the string depends on the property type. For a Boolean Property the string may be 'true' (without quotes) denoting the Boolean true value. For a String property, the string may again be 'true' (without quotes) denoting the four character sequence 't' 'r' 'u' 'e'."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isID" lowerBound="1" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isImplicit" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="If isReadOnly is true, the attribute may not be written to after initialization."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isResolveProxies" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTransient" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnsettable" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isVolatile" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="keys" ordered="false" upperBound="-1"
-        eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//Property">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="property"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Two attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedExpression" eType="#//LanguageExpression"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningClass" eType="#//Class"
-        eOpposite="#//Class/ownedProperties">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The class that owns the property, and of which the property is an attribute."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperties" ordered="false"
-        upperBound="-1" eType="#//Property">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="property"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" eType="#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
-        upperBound="-1" eType="#//Property">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="property"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PropertyCallExp" eSuperTypes="#//NavigationCallExp #//ReferringElement">
-    <eOperations name="CompatibleResultType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="type = getSpecializedReferredPropertyType()&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="NonStaticSourceTypeIsConformant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="not referredProperty.isStatic implies &#xA;&#x9;ownedSource.type.conformsTo(getSpecializedReferredPropertyOwningType())&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eOperations name="getSpecializedReferredPropertyOwningType" lowerBound="1" eType="#//Class">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="referredProperty.owningClass "/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="getSpecializedReferredPropertyType" lowerBound="1" eType="#//Class">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="referredProperty.type.oclAsType(Class) "/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" eType="#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//PseudostateKind"
-        defaultValueLiteral="initial">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningState" eType="#//State"
-        eOpposite="#//State/ownedConnectionPoints">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns this pseudostate and in which it appears."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" eType="#//StateMachine"
-        eOpposite="#//StateMachine/ownedConnectionPoints">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RealLiteralExp" eSuperTypes="#//NumericLiteralExp">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="realSymbol" lowerBound="1"
-        eType="#//Real"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ReferringElement" abstract="true" interface="true">
-    <eOperations name="getReferredElement" lowerBound="1" eType="#//Element"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" eType="#//Region">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region of which this region is an extension."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSubvertexes" ordered="false"
-        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/owningRegion">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of vertices that are owned by this region."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/owningRegion">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningState" eType="#//State"
-        eOpposite="#//State/ownedRegions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStateMachine" eType="#//StateMachine"
-        eOpposite="#//StateMachine/ownedRegions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SelfType" eSuperTypes="#//Class">
-    <eOperations name="specializeIn" lowerBound="1" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="selfType&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="expr" lowerBound="1" eType="#//CallExp"/>
-      <eParameters name="selfType" lowerBound="1" eType="#//Type"/>
-    </eOperations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SendSignalAction" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="signal" lowerBound="1"
-        eType="#//Signal"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SequenceType" eSuperTypes="#//CollectionType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="SetType" eSuperTypes="#//CollectionType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Class"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Slot" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="definingProperty" lowerBound="1"
-        eType="#//Property">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="slot"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The structural feature that specifies the values that may be held by the slot."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedValues" upperBound="-1"
-        eType="#//ValueSpecification" containment="true">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="owningSlot"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningInstance" lowerBound="1"
-        eType="#//InstanceSpecification" eOpposite="#//InstanceSpecification/ownedSlots">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The instance specification that owns this slot."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StandardLibrary" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningCompleteEnvironment"
-        eType="#//CompleteEnvironment" eOpposite="#//CompleteEnvironment/ownedStandardLibrary"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//Vertex">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A state models a situation during which some (usually implicit) invariant condition holds."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" lowerBound="1"
-        eType="#//Boolean" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" lowerBound="1"
-        eType="#//Boolean" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" lowerBound="1"
-        eType="#//Boolean" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSimple=true is said to be a simple state. A simple state does not have any regions and it does not refer to any submachine state machine."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" lowerBound="1"
-        eType="#//Boolean" changeable="false" volatile="true" transient="true" derived="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnectionPoints"
-        ordered="false" upperBound="-1" eType="#//Pseudostate" containment="true"
-        eOpposite="#//Pseudostate/owningState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit pseudostates of a composite state. These can only be entry or exit Pseudostates, and they must have different names. They can only be defined for composite states."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnections" ordered="false"
-        upperBound="-1" eType="#//ConnectionPointReference" containment="true" eOpposite="#//ConnectionPointReference/owningState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDeferrableTriggers"
-        ordered="false" upperBound="-1" eType="#//Trigger" containment="true" eOpposite="#//Trigger/owningState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.&#xA;"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDoActivity" eType="#//Behavior"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed while being in the state. The execution starts when this state is entered, and stops either by itself, or when the state is exited, whichever comes first."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEntry" eType="#//Behavior"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is entered regardless of the transition taken to reach the state. If defined, entry actions are always executed to completion prior to any internal behavior or transitions performed within the state.&#xA;"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedExit" eType="#//Behavior"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="An optional behavior that is executed whenever this state is exited regardless of which transition was taken out of the state. If defined, exit actions are always executed to completion only after all internal activities and transition actions have completed execution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRegions" ordered="false"
-        upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/owningState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStateInvariant" eType="#//Constraint"
-        containment="true" eOpposite="#//Constraint/owningState">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies conditions that are always true when this state is the current state. In protocol state machines, state invariants are additional conditions to the preconditions of the outgoing transitions, and to the postcondition of the incoming transitions.&#xA;"/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" eType="#//State">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state of which this state is a redefinition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachines" eType="#//StateMachine"
-        eOpposite="#//StateMachine/submachineStates">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateExp" eSuperTypes="#//OCLExpression">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredState" eType="#//State"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachines"
-        ordered="false" upperBound="-1" eType="#//StateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The state machines of which this is an extension."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnectionPoints"
-        ordered="false" upperBound="-1" eType="#//Pseudostate" containment="true"
-        eOpposite="#//Pseudostate/owningStateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRegions" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//Region" containment="true" eOpposite="#//Region/owningStateMachine">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The regions owned directly by the state machine."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="submachineStates" ordered="false"
-        upperBound="-1" eType="#//State" eOpposite="#//State/submachines">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedExtenders" ordered="false"
-        upperBound="-1" eType="#//StereotypeExtender" containment="true" eOpposite="#//StereotypeExtender/owningStereotype"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StereotypeExtender" eSuperTypes="#//Element">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="class" lowerBound="1" eType="#//Class"
-        eOpposite="#//Class/extenders"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningStereotype" lowerBound="1"
-        eType="#//Stereotype" eOpposite="#//Stereotype/ownedExtenders"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StringLiteralExp" eSuperTypes="#//PrimitiveLiteralExp">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringSymbol" lowerBound="1"
-        eType="#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSubstitutions" ordered="false"
-        lowerBound="1" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
-        eOpposite="#//TemplateParameterSubstitution/owningBinding">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The parameter substitutions owned by this template binding."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningElement" lowerBound="1"
-        eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedBindings">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is bound by this binding."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="templateSignature" lowerBound="1"
-        eType="#//TemplateSignature" changeable="false" volatile="true" transient="true"
-        derived="true" resolveProxies="false">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature for the template that is the target of the binding."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Type">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter exposes a parameterable element as a formal template parameter of a template."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constrainingClasses" ordered="false"
-        upperBound="-1" eType="#//Class">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningSignature" lowerBound="1"
-        eType="#//TemplateSignature" eOpposite="#//TemplateSignature/ownedParameters">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The template signature that owns this template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="actual" lowerBound="1"
-        eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the actual parameter for this substitution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="formal" lowerBound="1"
-        eType="#//TemplateParameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedWildcard" eType="#//WildcardType"
-        containment="true">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the actual parameter for this substitution."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningBinding" lowerBound="1"
-        eType="#//TemplateBinding" eOpposite="#//TemplateBinding/ownedSubstitutions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A template signature bundles the set of formal template parameters for a templated element."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameters" lowerBound="1"
-        upperBound="-1" eType="#//TemplateParameter" containment="true" eOpposite="#//TemplateParameter/owningSignature">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningElement" lowerBound="1"
-        eType="#//TemplateableElement" eOpposite="#//TemplateableElement/ownedSignature">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that owns this template signature."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
-      eSuperTypes="#//Element">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A templateable element is an element that can optionally be defined as a template and bound to other templates."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBindings" ordered="false"
-        upperBound="-1" eType="#//TemplateBinding" containment="true" eOpposite="#//TemplateBinding/owningElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional bindings from this element to templates."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSignature" eType="#//TemplateSignature"
-        containment="true" eOpposite="#//TemplateSignature/owningElement">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="unspecializedElement" eType="#//TemplateableElement"
-        transient="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//Namespace">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A transition is a directed relationship between a source vertex and a target vertex. It may be part of a compound transition, which takes the state machine from one state configuration to another, representing the complete response of the state machine to an occurrence of an event of a particular type."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//TransitionKind"
-        defaultValueLiteral="external">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Indicates  the precise type of the transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEffect" eType="#//Behavior"
-        containment="true" eOpposite="#//Behavior/owningTransition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedGuard" eType="#//Constraint"
-        containment="true" eOpposite="#//Constraint/owningTransition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="A guard is a constraint that provides a fine-grained control over the firing of the transition. The guard is evaluated when an event occurrence is dispatched by the state machine. If the guard is true at that time, the transition may be enabled, otherwise, it is disabled. Guards should be pure expressions without side effects. Guard expressions with side effects are ill formed."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTriggers" ordered="false"
-        upperBound="-1" eType="#//Trigger" containment="true" eOpposite="#//Trigger/owningTransition">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the triggers that may fire the transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningRegion" lowerBound="1"
-        eType="#//Region" eOpposite="#//Region/ownedTransitions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the region that owns this transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
-        eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
-        eType="#//Vertex" eOpposite="#//Vertex/incomingTransitions">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningState" eType="#//State"
-        eOpposite="#//State/ownedDeferrableTriggers"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningTransition" eType="#//Transition"
-        eOpposite="#//Transition/ownedTriggers"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TupleLiteralExp" eSuperTypes="#//LiteralExp">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParts" upperBound="-1"
-        eType="#//TupleLiteralPart" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TupleLiteralPart" eSuperTypes="#//VariableDeclaration">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInit" eType="#//OCLExpression"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TupleType" eSuperTypes="#//DataType"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A type is a named element that is used as the type for a typed element. A type can be contained in a package.&#xA;Type is defined to be a kind of templateable element so that a type can be parameterized. It is also defined to be a kind of parameterable element so that a type can be a formal template parameter."/>
-    </eAnnotations>
-    <eOperations name="flattenedType" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self&#xA;&#xA;"/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isClass" eType="#//Class"/>
-    <eOperations name="isTemplateParameter" eType="#//TemplateParameter"/>
-    <eOperations name="specializeIn" lowerBound="1" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="self&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="expr" lowerBound="1" eType="#//CallExp"/>
-      <eParameters name="selfType" lowerBound="1" eType="#//Type"/>
-    </eOperations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeExp" eSuperTypes="#//OCLExpression #//ReferringElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredType" eType="#//Type"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A typed element is a kind of named element that represents an element with a type."/>
-    </eAnnotations>
-    <eOperations name="CompatibleBody" lowerBound="1" eType="#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="&#xA;&#x9;bodySpecification.type.conformsTo(self.type)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="bodySpecification" lowerBound="1" eType="#//ValueSpecification"/>
-    </eOperations>
-    <eOperations name="makeParameter" lowerBound="1" eType="#//Parameter">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="Parameter{name='name'}&#xA;&#xA;"/>
-      </eAnnotations>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMany" lowerBound="1"
-        eType="#//Boolean" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" lowerBound="1"
-        eType="#//Boolean" defaultValueLiteral="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Type">
-      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
-        <details key="body" value="typedElement"/>
-      </eAnnotations>
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The type of the TypedElement."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="UnlimitedNaturalLiteralExp" eSuperTypes="#//NumericLiteralExp">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unlimitedNaturalSymbol"
-        lowerBound="1" eType="#//UnlimitedNatural"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="UnspecifiedValueExp" eSuperTypes="#//OCLExpression"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
-      eSuperTypes="#//TypedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.&#xA;ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template."/>
-    </eAnnotations>
-    <eOperations name="booleanValue" lowerBound="1" eType="#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="integerValue" lowerBound="1" eType="#//Integer">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isComputable" lowerBound="1" eType="#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="isNull" lowerBound="1" eType="#//Boolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="stringValue" lowerBound="1" eType="#//String">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query stringValue() gives a single String value when one can be computed."/>
-      </eAnnotations>
-    </eOperations>
-    <eOperations name="unlimitedValue" lowerBound="1" eType="#//UnlimitedNatural">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed."/>
-      </eAnnotations>
-    </eOperations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//VariableDeclaration">
-    <eOperations name="CompatibleInitialiserType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-        <details key="body" value="ownedInit &lt;> null implies ownedInit.type.conformsTo(type)&#xA;&#xA;"/>
-      </eAnnotations>
-      <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
-      <eParameters name="context">
-        <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-        </eGenericType>
-      </eParameters>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isImplicit" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInit" eType="#//OCLExpression"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="representedParameter" eType="#//Parameter"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclaration" abstract="true"
-      eSuperTypes="#//TypedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="typeValue" eType="#//Type"
-        transient="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="VariableExp" eSuperTypes="#//OCLExpression #//ReferringElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isImplicit" eType="#//Boolean"
-        defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referredVariable" eType="#//VariableDeclaration"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="A vertex is an abstraction of a node in a state machine graph. In general, it can be the source or destination of any number of transitions."/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" eOpposite="#//Transition/target">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions entering this vertex."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" changeable="false" eOpposite="#//Transition/source">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Specifies the transitions departing from this vertex."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="owningRegion" eType="#//Region"
-        eOpposite="#//Region/ownedSubvertexes">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The region that contains this vertex."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Visitable" instanceClassName="org.eclipse.ocl.pivot.util.Visitable"
-      abstract="true" interface="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="VoidType" eSuperTypes="#//Class"/>
-  <eClassifiers xsi:type="ecore:EClass" name="WildcardType" eSuperTypes="#//Class">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" eType="#//Type">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="The element that is the default for this formal template parameter."/>
-      </eAnnotations>
-    </eStructuralFeatures>
-  </eClassifiers>
-</ecore:EPackage>