[433103] Fix 2-valued precedences, OclVoid overloads
diff --git a/plugins/org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib b/plugins/org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib
index 61436e3..cfe312a 100644
--- a/plugins/org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib
+++ b/plugins/org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib
@@ -191,7 +191,7 @@
 	oclText[false] if either oclText[self] or oclText[b] is oclText[false].
 	Otherwise oclText[true].
 	**/
-	operation and2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.logical.BooleanAndOperation2'
+	operation and2(b : Boolean[1]) : Boolean[1] precedence=AND => 'org.eclipse.ocl.pivot.library.logical.BooleanAndOperation2'
 	{
 		body: if self = false then false
 		      elseif b = false then false
@@ -224,7 +224,7 @@
 	oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
 	Otherwise oclText[false].
 	**/
-	operation implies2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation2'
+	operation implies2(b : Boolean[1]) : Boolean[1] precedence=IMPLIES => 'org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation2'
 	{
 		body: if self = false then true
 		      elseif b = true then true
@@ -256,7 +256,7 @@
 	oclText[true] if oclText[self] is oclText[false].
 	Otherwise oclText[false].
 	**/
-	operation not2() : Boolean[1] => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation2'
+	operation not2() : Boolean[1] precedence=UNARY => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation2'
 	{
 		body: if self then false else true endif;
 	}
@@ -266,7 +266,7 @@
 	oclText[null] if oclText[self] is oclText[null].
 	Otherwise oclText[invalid].
 	**/
-	operation not() : Boolean[?] validating precedence=UNARY => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation'
+	operation not() : Boolean[?] validating invalidating precedence=UNARY => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation'
 	{
 		body: if self.oclIsInvalid() then self
 		      elseif self = null then null
@@ -277,7 +277,7 @@
 	oclText[true] if either oclText[self] or oclText[b] is oclText[true].
 	Otherwise oclText[false]. 
 	**/
-	operation or2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.logical.BooleanOrOperation2'
+	operation or2(b : Boolean[1]) : Boolean[1] precedence=OR => 'org.eclipse.ocl.pivot.library.logical.BooleanOrOperation2'
 	{
 		body: if self = true then true
 			  elseif b = true then true
@@ -313,7 +313,7 @@
 	oclText[true] if oclText[self] <> oclText[b]
 	Otherwise oclText[false].
 	**/
-	operation xor2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.logical.BooleanXorOperation2'
+	operation xor2(b : Boolean[1]) : Boolean[1] precedence=XOR => 'org.eclipse.ocl.pivot.library.logical.BooleanXorOperation2'
 	{
 		body: self <> b;
 	}
@@ -1083,13 +1083,8 @@
 	*/
 	operation "<>"(object2 : OclSelf[1]) : Boolean[1] precedence=EQUALITY => 'org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation';
 	operation and(b : Boolean[?]) : Boolean[?] validating precedence=AND => 'org.eclipse.ocl.pivot.library.logical.BooleanAndOperation';
-	operation and2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
 	operation implies(b : Boolean[?]) : Boolean[?] validating precedence=IMPLIES => 'org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation';
-	operation implies2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
-	operation not2() : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
 	operation or(b : Boolean[?]) : Boolean[?] validating precedence=OR => 'org.eclipse.ocl.pivot.library.logical.BooleanAndOperation';
-	operation or2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
-	operation xor2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
 	operation oclAsSet() : Set(OclSelf[*|1]) => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation';
 	operation oclAsType(TT)(type : typeof(TT)[1]) : TT => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation';
 	operation oclIsInvalid() : Boolean[1] validating => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation';
@@ -1253,19 +1248,19 @@
 	The concatenation of oclText[null] and s.
 	**/
 	operation "+"(s : String[?]) : String[1] precedence=ADDITIVE => 'org.eclipse.ocl.pivot.library.string.StringConcatOperation';
-	operation and(b : Boolean[?]) : Boolean[?] precedence=AND => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidAndOperation';
-	operation and2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
-	operation implies(b : Boolean[?]) : Boolean[?] precedence=IMPLIES => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidImpliesOperation';
-	operation implies2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
-	operation not() : Boolean[?] validating precedence=UNARY => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation';
-	operation not2() : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
-	operation or(b : Boolean[?]) : Boolean[?] precedence=OR => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidOrOperation';
-	operation or2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
+	operation and(b : Boolean[?]) : Boolean[?] validating invalidating precedence=AND => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidAndOperation';
+	operation implies(b : Boolean[?]) : Boolean[?] validating invalidating precedence=IMPLIES => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidImpliesOperation';
+	operation not() : Boolean[?] validating invalidating precedence=UNARY => 'org.eclipse.ocl.pivot.library.logical.BooleanNotOperation';
+	operation or(b : Boolean[?]) : Boolean[?] validating invalidating precedence=OR => 'org.eclipse.ocl.pivot.library.oclvoid.OclVoidOrOperation';
 	operation xor(b : Boolean[?]) : Boolean[?] precedence=XOR => 'org.eclipse.ocl.pivot.library.logical.BooleanXorOperation';
-	operation xor2(b : Boolean[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation';
 	operation oclAsSet() : Set(OclSelf[0..0|1]) => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation';
+	operation oclAsType(TT)(type : typeof(TT)[1]) : TT[1] invalidating => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation';
 	operation oclIsInvalid() : Boolean[1] validating => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation';
+	operation oclIsKindOf(type : OclType[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsKindOfOperation';
+	operation oclIsTypeOf(type : OclType[1]) : Boolean[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsTypeOfOperation';
 	operation oclIsUndefined() : Boolean[1] validating => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsUndefinedOperation';
+	operation oclType() : typeof(OclSelf)[1] => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypeOperation';
+	operation oclTypes() : Set(typeof(OclSelf)[1]) => 'org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation';
 	/**
 	The concatenation of oclText[null] and s.
 	**/