Index: /ModelExtender/src/de/uni_hildesheim/sse/model_extender/convert/ModelExtender.java
===================================================================
--- /ModelExtender/src/de/uni_hildesheim/sse/model_extender/convert/ModelExtender.java	(revision 226)
+++ /ModelExtender/src/de/uni_hildesheim/sse/model_extender/convert/ModelExtender.java	(revision 227)
@@ -192,9 +192,7 @@
             switch (intersect(op1, val1, op2, val2)) {
             case NONE:
-                // additional -> !original AND original -> !additional
-                // = additional XOR original
-                // = (!additional OR !original) AND (additional OR original)
+                // additional -> !original
+                // = !additional OR !original
                 addConstraint(new OCLFeatureCall(notAdditional, OclKeyWords.OR, notOriginal));
-                addConstraint(new OCLFeatureCall(additional, OclKeyWords.OR, original));
                 break;
                 
Index: /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java
===================================================================
--- /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java	(revision 226)
+++ /ModelExtender/test/de/uni_hildesheim/see/model_extender/ModelExtenderTest.java	(revision 227)
@@ -156,12 +156,23 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, eLE8, -eE8));
         
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, eLE8, eE8));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eLE8, -eE8));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eLE8, eE8));
+        
         // E=8 and E<=3 do not intersect:
-        //  E=8 XOR E<=3 == !E=8 || !E<=3 AND E=8 || E<=3
+        //  E=8 -> !E<=3 == !E=8 || !E<=3
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -eE8, -eLE3));
-        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, eE8, eLE3));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, eE8, eLE3));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eE8, eLE3));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, eE8, -eLE3));
         
         // E<=8 is superset of E<=3
         //  E<=3 -> E<=8 == E<=8 || !E<=3
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, eLE8, -eLE3));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, eLE8, eLE3));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eLE8, -eLE3));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eLE8, eLE3));
         
         // E<4 is equal to E<=3
@@ -169,4 +180,7 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -eLE3, eL4));
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, eLE3, -eL4));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, eLE3, eL4));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -eLE3, -eL4));
     }
 
@@ -186,12 +200,23 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dGE2, -dE5));
         
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dGE2, dE5));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, -dE5));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, dE5));
+        
         // D=5 and D>=6 do not intersect:
-        //  D=5 XOR D>=6 == !D=5 || !D>=6 AND D=5 || D>=6
+        //  D=5 -> !D>=6 == !D=5 || !D>=6
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -dE5, -dGE6));
-        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dE5, dGE6));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dE5, dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dE5, dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dE5, -dGE6));
         
         // D>=2 is superset of D>=6
         //  D>=6 -> D>=2 == D>=2 || !D>=6
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dGE2, -dGE6));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dGE2, dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, -dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, dGE6));
         
         // D>1 is equal to D>=2
@@ -199,4 +224,23 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, dG1));
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dGE2, -dG1));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dGE2, dG1));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dGE2, -dG1));
+        
+        // D>1 is superset of D>=6
+        // D>=6 -> D>1 == D>1 || !D>=6
+        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dG1, -dGE6));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dG1, dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dG1, -dGE6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dG1, dGE6));
+        
+        // D>1 is superset of D=5
+        //  D=5 -> D>1 == D>1 || !D=5
+        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, dG1, -dE5));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, dG1, dE5));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dG1, -dE5));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -dG1, dE5));
     }
 
@@ -211,7 +255,10 @@
         
         // C=9 and C=8 do not intersect:
-        //  C=9 XOR C=8 == !C=9 || !C=8 AND C=9 || C=8
+        //  C=9 -> !C=8 == !C=9 || !C=8
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -cE8, -cE9));
-        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, cE8, cE9));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, cE8, cE9));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -cE8, cE9));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, cE8, -cE9));
     }
 
@@ -230,12 +277,23 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -bE2, bG1));
         
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bE2, bG1));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -bE2, -bG1));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bE2, -bG1));
+        
         // B=2 and B>2 do not intersect:
-        //  B=2 XOR B>2 == !B=2 || !B>2 AND B=2 || B>2
+        //  B=2 -> !B>2 == !B=2 || !B>2
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -bE2, -bG2));
-        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, bE2, bG2));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bE2, bG2));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -bE2, bG2));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bE2, -bG2));
         
         // B>1 is superset of B>2:
         //  B>2 -> B>1 == B>1 || !B>2
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -bG2, bG1));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bG2, bG1));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -bG2, -bG1));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, bG2, -bG1));
     }
 
@@ -254,13 +312,23 @@
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -aE5, aL6));
         
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aE5, aL6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -aE5, -aL6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aE5, -aL6));
+        
         // A=5 and A<4 do not intersect:
-        //  A=5 XOR A<4
-        //  A=5 -> !A<4 AND !A=5 -> A<4
+        //  A=5 -> !A<4 == !A=5 || !A<4
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -aE5, -aL4));
-        Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, aE5, aL4));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aE5, aL4));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -aE5, aL4));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aE5, -aL4));
         
         // A<6 is superset of A<4:
         //  A<4 -> A<6 == A<6 || !A<4
         Assert.assertTrue(DimacsTestUtils.containsConstraint(dimacsString, -aL4, aL6));
+        
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aL4, aL6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, -aL4, -aL6));
+        Assert.assertFalse(DimacsTestUtils.containsConstraint(dimacsString, aL4, -aL6));
     }
     
