diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..1c66ead995508a6a991b084e8a23e92884081958
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.ecl
@@ -0,0 +1,36 @@
+//RoleConstraints and RoleGroups
+Start RoleImplication (Role_Implication and Group_Constraints) when
+  IsSourceType(RoleType) or IsSourceType(RoleGroup); 
+Add RoleImplication (Role_Implication and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Reconnect RoleImplication (Role_Implication and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Create RoleImplication (Role_Implication and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup));
+ 
+Start RoleEquivalence (Role_Equivalence and Group_Constraints) when
+  IsSourceType(RoleType) or IsSourceType(RoleGroup); 
+Add RoleEquivalence (Role_Equivalence and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Reconnect RoleEquivalence (Role_Equivalence and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Create RoleEquivalence (Role_Equivalence and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup));
+  
+Start RoleProhibition (Role_Prohibition and Group_Constraints) when
+  IsSourceType(RoleType) or IsSourceType(RoleGroup); 
+Add RoleProhibition (Role_Prohibition and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Reconnect RoleProhibition (Role_Prohibition and Group_Constraints) when
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup)); 
+Create RoleProhibition (Role_Prohibition and Group_Constraints) when 
+  (IsSourceType(RoleType) or IsSourceType(RoleGroup)) and !SourceEqualsTarget() and
+  (IsTargetType(RoleType) or IsTargetType(RoleGroup));
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy
new file mode 100644
index 0000000000000000000000000000000000000000..6630ab19de89946fddaaadcf4925b9932ce5a9b9
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleConstraintsAndRoleGroups.editpolicy
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="ASCII"?>
+<editpolicymodel:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:editpolicymodel="http://framed/editpolicymodel">
+  <policies action="Start" actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:OrConstraintRule">
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+    </constraintRule>
+  </policies>
+  <policies action="Add" actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies action="Reconnect" actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies action="Start" actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:OrConstraintRule">
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+    </constraintRule>
+  </policies>
+  <policies action="Add" actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies action="Reconnect" actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies action="Start" actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:OrConstraintRule">
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+    </constraintRule>
+  </policies>
+  <policies action="Add" actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies action="Reconnect" actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+  <policies actionType="RoleProhibition">
+    <featureRule xsi:type="editpolicymodel:AndFeatureRule">
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+      <rules xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    </featureRule>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:OrConstraintRule">
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+          <rules xsi:type="editpolicymodel:IsSourceType" type="RoleGroup"/>
+        </rules>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:OrConstraintRule">
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:IsTargetType" type="RoleGroup"/>
+      </rules>
+    </constraintRule>
+  </policies>
+</editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java b/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java
index 2f40db8cc7454913e0a05d7adbc393bca2b5a860..6b5aea2b923102c06f0069deb436d15c5f32d6e3 100644
--- a/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/AbstractRoleConstraintPattern.java
@@ -43,7 +43,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt
 	    org.framed.iorm.model.ModelElement oldShape = UIUtil.getModelElementForAnchor(oldAnchor);
 	    if(newShape != null && oldShape != null) {
 	    	if(newShape.getContainer() == oldShape.getContainer()) {
-	    		return EditPolicyService.getHandler(this.getDiagram()).canReconnect(context, this.modelType);
+	    		return EditPolicyService.getHandler(this.getDiagram()).canReconnect(context, this.getModelType());
 		}	}
 	    return false;
 	}
@@ -58,7 +58,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt
 		if(addContext.getNewObject() instanceof Relation) {
 		   Relation relation = (Relation) addContext.getNewObject();
 		   if(relation != null && relation.getType() != null) {
-				return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, this.modelType);
+				return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, this.getModelType());
 		   }
 		}
 		return false;
@@ -82,7 +82,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt
 	    org.framed.iorm.model.ModelElement sourceShape = UIUtil.getModelElementForAnchor(sourceAnchor);
 	    org.framed.iorm.model.ModelElement targetShape = UIUtil.getModelElementForAnchor(targetAnchor);
 	    if(sourceShape != null && targetShape != null) {
-	    		return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.modelType);
+	    		return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType());
 		}	
 	    return false;
 	}
@@ -100,7 +100,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt
 		Anchor sourceAnchor = createContext.getSourceAnchor();
 		org.framed.iorm.model.ModelElement sourceShape = UIUtil.getModelElementForAnchor(sourceAnchor);
 		if(sourceShape != null){	
-	    	return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.modelType);
+	    	return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.getModelType());
 		}	
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
index 2116907788a7c76d881b1c1769f02d67c2bdaf8c..151ba1aaa1797abfddb63829d2a4b03ae233102c 100644
--- a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
@@ -2,14 +2,14 @@
 Start RoleImplication (Role_Implication) when IsSourceType(RoleType); 
 Add RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
 Reconnect RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
-Create RoleProhibition (true) when true;
+Create RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
  
 Start RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType); 
 Add RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
 Reconnect RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
-Create RoleProhibition (true) when true;
+Create RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
 
 Start RoleProhibition (Role_Prohibition) when IsSourceType(RoleType); 
 Add RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
 Reconnect RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
-Create RoleProhibition (true) when true;
\ No newline at end of file
+Create RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType();
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
index 9302f433ed8aaafccc0083517e09820aa4425499..bef68bc3163c9b5af27ea62dab991692244c867c 100644
--- a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.editpolicy
@@ -28,9 +28,17 @@
       <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
     </constraintRule>
   </policies>
-  <policies actionType="RoleProhibition">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  <policies actionType="RoleImplication">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Implication"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
   </policies>
   <policies action="Start" actionType="RoleEquivalence">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
@@ -60,9 +68,17 @@
       <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
     </constraintRule>
   </policies>
-  <policies actionType="RoleProhibition">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  <policies actionType="RoleEquivalence">
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Equivalence"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
   </policies>
   <policies action="Start" actionType="RoleProhibition">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
@@ -93,7 +109,15 @@
     </constraintRule>
   </policies>
   <policies actionType="RoleProhibition">
-    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Role_Prohibition"/>
+    <constraintRule xsi:type="editpolicymodel:AndConstraintRule">
+      <rules xsi:type="editpolicymodel:AndConstraintRule">
+        <rules xsi:type="editpolicymodel:IsSourceType" type="RoleType"/>
+        <rules xsi:type="editpolicymodel:NotConstraintRule">
+          <rule xsi:type="editpolicymodel:SourceEqualsTarget"/>
+        </rules>
+      </rules>
+      <rules xsi:type="editpolicymodel:SourceEqualsTargetType"/>
+    </constraintRule>
   </policies>
 </editpolicymodel:Model>